package soo.ui.simple; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.Toast; import android.widget.ToggleButton; public class ButtonTest extends Activity { //외부 클래스 이다. /** Called when the activity is first created. */ Button b; // 지역변수에 final을 넣던지...멤버변수로 선언하던지 선택해야 한다. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); b = (Button)findViewById(R.id.Button01); //강제 형 변환 (상속되어서 아래로(child)로 바뀌는 형변환을 말한다. //final b : 지역변수에 final을 사용하면, 내부클래스에서 접근할 수 있다. //final 을 사용 하는 이유 : b.setOnClickListener( new View.OnClickListener() { //익명 내부 클래스 이다.. @Override public void onClick(View v) { // TODO Auto-generated method stub Toast t = Toast.makeText(ButtonTest.this, "일반버튼", Toast.LENGTH_LONG); t.show(); b.setText("눌려 졌어"); } } ); final ImageButton b2 = (ImageButton)findViewById(R.id.imageButton01); //강제 형 변환 (상속되어서 아래로(child)로 바뀌는 형변환을 말한다. //final b : 지역변수에 final을 사용하면, 내부클래스에서 접근할 수 있다. //final 을 사용 하는 이유 : b2.setOnClickListener( new View.OnClickListener() { //익명 내부 클래스 이다.. @Override public void onClick(View v) { // TODO Auto-generated method stub Toast t = Toast.makeText(ButtonTest.this, "이미지 버튼", Toast.LENGTH_LONG); t.show(); } } ); final ToggleButton b3 = (ToggleButton)findViewById(R.id.ToggleButton01); //강제 형 변환 (상속되어서 아래로(child)로 바뀌는 형변환을 말한다. //final b : 지역변수에 final을 사용하면, 내부클래스에서 접근할 수 있다. //final 을 사용 하는 이유 : b3.setOnClickListener( new View.OnClickListener() { //익명 내부 클래스 이다.. @Override public void onClick(View v) { // TODO Auto-generated method stub Toast t = null; if(b3.isChecked()){ t = Toast.makeText(ButtonTest.this, "켜짐", Toast.LENGTH_SHORT); }else{ t = Toast.makeText(ButtonTest.this, "꺼짐", Toast.LENGTH_SHORT); } t.show(); } } ); } } //내부 클래스를 만드는 이유 : 거추장 스럽고, 보안의 위험이 있다. // 외부 클래스의 멤버변수,메소드(resourse)에 접근을 쉽게 하기 이해서... //익명 내부클래스를 만드는 이유 : 1군데에서만 사용