안드로이드 개발 질문/답변
(글 수 45,052)
class ABC implements Button.OnClickListener {
public void onClick(View v){
// 여기서 v.getID() 이함수는 버튼의 아이디를 반환하는데요
// 그거 말고 클릭한 버튼의 자바에서 선언한 객체명을 반환하는 함수를 알고 싶습니다
// 제가 클릭한 버튼의 텍스트를 변경하려고 합니다.
// 알려주세요;;
// 하루쟁일 씨름하네요
}
--------------------------------------------- 코 드 --------------------------------------------
package ex.Game;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import java.util.*;
public class Game extends Activity {
private static final int buttons[] = {
R.id.bt1,
R.id.bt2,
R.id.bt3,
R.id.bt4,
R.id.bt5,
R.id.bt6,
R.id.bt7,
R.id.bt8,
R.id.bt9,
R.id.bt10,
R.id.bt11,
R.id.bt12,
R.id.bt13,
R.id.bt14,
R.id.bt15,
R.id.bt16,
};
private static final Button btn[] = new Button[16];
private int x;
private Random ran;
class btLC implements Button.OnClickListener {
public void onClick(View v){
if(buttons[x] != v.getId()){
// 클릭한 버튼객체의 글자를 바꾸려고 하는데 잘 안되네요;;
}else {
}
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.init();
btLC btlc = new btLC();
for(int i = 0 ; i < 16; i++){
btn[i].setOnClickListener(btlc);
}
}
private void init() {
ran = new Random();
x = ran.nextInt(16);
for(int i = 0 ; i < 16; i++){
btn[i] = (Button)findViewById(buttons[i]);
}
}
}
일단 현재 누른 버튼을 받는 뷰는 View v란 변수고 하니 v를 버튼으로 형변환 시켜
(Button)v.setText("string"); ...그런데 빨간줄이네요 ..이클립스가 알아서 고쳐주는대로 해보니, 다음과 같은 형태겠네요.
btLC implements Button.OnClickListener {
public void onClick(View v){
if(buttons[x] != v.getId()){
// 클릭한 버튼객체의 글자를 바꾸려고 하는데 잘 안되네요;;
((Button) v).setText("wrong!!");
}else btn[x].setText("correct!!");
}
}