안드로이드 개발 질문/답변
(글 수 45,052)
예를들어 10개의 버튼이 있다고 치고 이 중 한 버튼을 클릭했을 때 클릭된 버튼을 통해 어떠한 액션을 취할 예정입니다.
헌데 10개의 버튼 중 한 개의 버튼만을 클릭하게 할 것인데 꼭 각각의 버튼마다 setonclicklistener를 달아야 하나 싶어서 질문을 드려봅니다. 추가하는게 어려운건 아니고 그냥 버튼 번호만 바꿔다가 10개의 setonclicklistener를 달면 되겠지만 버튼을 한 개만 쓸 예정인지라 낭비를 좀 줄일 수 없을까 하는 차원에서 이와 관련한 예제가 있는지 궁금합니다.
클릭된 버튼 번호만 넘겨서 setonclicklistener를 호출하고 싶다는 정도로 쓰면 될까 모르겠네요.
헌데 10개의 버튼 중 한 개의 버튼만을 클릭하게 할 것인데 꼭 각각의 버튼마다 setonclicklistener를 달아야 하나 싶어서 질문을 드려봅니다. 추가하는게 어려운건 아니고 그냥 버튼 번호만 바꿔다가 10개의 setonclicklistener를 달면 되겠지만 버튼을 한 개만 쓸 예정인지라 낭비를 좀 줄일 수 없을까 하는 차원에서 이와 관련한 예제가 있는지 궁금합니다.
클릭된 버튼 번호만 넘겨서 setonclicklistener를 호출하고 싶다는 정도로 쓰면 될까 모르겠네요.
2010.02.27 17:31:34
http://android-developers.blogspot.com/2009/10/ui-framework-changes-in-android-16.html
중 Easier click listeners 부분을 참고하십시오
2010.02.27 18:27:26
public class IconActivity extends Activity implements View.OnClickListener{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.icon); intent_quiz = new Intent(this, VocaQuizActivity.class); intent_memory = new Intent(this, VocaMemoryActivity.class); intent_search = new Intent(this, VocaSearchActivity.class); intent_set = new Intent(this, SetActivity.class); (findViewById(R.id.icon_button1)).setOnClickListener(this); (findViewById(R.id.icon_button2)).setOnClickListener(this); (findViewById(R.id.icon_button3)).setOnClickListener(this); (findViewById(R.id.icon_button4)).setOnClickListener(this); } public void onClick(View v) { if(v.equals(findViewById(R.id.icon_button1))) startActivity(intent_quiz); else if(v.equals(findViewById(R.id.icon_button2))) startActivity(intent_search); else if(v.equals(findViewById(R.id.icon_button3))) startActivity(intent_memory); else if(v.equals(findViewById(R.id.icon_button4))) startActivity(intent_set); }
제 코드에서 발췌했습니다.