Android 입문자를 위한 Tutorial - 4. 라디오 버튼

Mobile Programming/Android 2010. 10. 21. 14:51


<RadioGroup>
          <RadioButton>
           />
          <RadioButton>
          />
</RadioGroup>


class안이어도 메서드 밖에서는 findViewById등의 메서드의 사용이 불가함 !

만약 하단 소스에서 nameG와 imageG를 선언과동시에 FindViewById()를 호출한다면 프로그램이 맥없이 뻗는다..

아래 예제는 명화들을 출력하는 ImageView imageG 를 라디오버튼을 이용해 조작하는 간단한 프로그램.


라디오버튼  레이아웃 입력 형태를 숙지하고 확인하도록 하자.

자바 소스는 단순히 OnCheckedChanged를 오버라이드, 아이디 별로 해당 작업을 수행하기만 한다.

package geng.mm.jnu;

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.TextView;

public class radio extends Activity implements RadioGroup.OnCheckedChangeListener {
 
	 TextView nameG;
	 ImageView imageG;
	 Drawable a1,a2,a3,a4,a5;

	 public void onCreate(Bundle savedInstanceState) {
		  super.onCreate(savedInstanceState);
		  setContentView(R.layout.formss);
		 
		  nameG = (TextView)findViewById(R.id.grimname);
		  imageG = (ImageView)findViewById(R.id.grimpan);
		 
		  RadioGroup ColGroup = (RadioGroup)findViewById(R.id.grimgroup);
		  ColGroup.setOnCheckedChangeListener(this);
		 
		  nameG = (TextView)findViewById(R.id.grimname);
		  imageG = (ImageView)findViewById(R.id.grimpan);
		 
		  a1 = this.getResources().getDrawable(R.drawable.cgrim1);
		  a2 = this.getResources().getDrawable(R.drawable.cgrim2);
		  a3 = this.getResources().getDrawable(R.drawable.cgrim3);
		  a4 = this.getResources().getDrawable(R.drawable.cgrim4);
		  a5 = this.getResources().getDrawable(R.drawable.cgrim5);

	 }
	 @Override
	 public void onCheckedChanged(RadioGroup group, int checkedId) {
	  // TODO Auto-generated method stub
	  
	  switch(checkedId){
	  case R.id.grim11:
	   imageG.setImageDrawable(a1);
	   nameG.setText("모나리자");
	   break;
	  
	  case R.id.grim22:
	   imageG.setImageDrawable(a2);
	   nameG.setText("이삭줍는여인들");
	   break;
	   
	  case R.id.grim33:
	   imageG.setImageDrawable(a3);
	   nameG.setText("절규");
	   break;
	  
	  case R.id.grim44:
	   imageG.setImageDrawable(a4);
	   nameG.setText("아담의창조");
	   break;
	  case R.id.grim55:
	   imageG.setImageDrawable(a5);
	   nameG.setText("별이빛나는밤에");
	   break;
	  }
	  
	 }
 
}