图像按钮验证不起作用
Imagebutton Validation not working
我正在尝试在我的 ImageButton
的 onClick()
中进行验证。它就像 Boggle 游戏中的瓷砖。如果我单击图像 1,那么最近的 ImageButtons
必须是唯一可单击的 ImageButton
,其余按钮将被设置为不可单击。我怎样才能实现它?这是我在 onCreate()
.
声明的代码
public void tileClick() {
if (image1.isPressed()) {
image1.setClickable(false);
image1.setImageResource(R.drawable.changes);
//clickable when image1 is pressed/clicked
image2.setClickable(true);
image5.setClickable(true);
image6.setClickable(true);
//unclickable
image3.setClickable(false);
image4.setClickable(false);
image7.setClickable(false);
image8.setClickable(false);
image9.setClickable(false);
image10.setClickable(false);
image11.setClickable(false);
image12.setClickable(false);
image13.setClickable(false);
image14.setClickable(false);
image15.setClickable(false);
image16.setClickable(false);
}
}
自定义点击监听器
//获取ImageButton字母
View.OnClickListener myCommoClickListner = new View.OnClickListener(){
@Override
public void onClick(View arg0) {
Log.i(TAG, "arg0.getId()=" + arg0.getId());
if (arg0.getId()==R.drawable.a){
Log.i(TAG,"arg0.getId()="+arg0.getId());
generatedString=generatedString+("a");
text.setText(generatedString);
//change ImageButton's background when clicked
((ImageButton) arg0).setImageResource(R.drawable.changea);
//Set ImageButton clickable = false when already clicked
arg0.setClickable(false);
}
}
};
//all 16 ImageButtons declared like this :
image1.setOnClickListener(myCommoClickListner);
更改您的方法以接受 ImageButton
public void tileClick(ImageButton clickedBtn) {
// validation logic
}
将点击的 ImageButton
传递给 onClick()
中的函数
View.OnClickListener myCommoClickListner = new View.OnClickListener(){
@Override
public void onClick(View arg0) {
...
tileClick((ImageButton) arg0) // should change arg0 to something meaningful (v, view, etc...)
...
}
}
};
然后根据传入的按钮设置按钮可点击true/false
您可以将 ImageButtons
放在 Array
中并遍历它们并根据按下的按钮设置可点击。
我正在尝试在我的 ImageButton
的 onClick()
中进行验证。它就像 Boggle 游戏中的瓷砖。如果我单击图像 1,那么最近的 ImageButtons
必须是唯一可单击的 ImageButton
,其余按钮将被设置为不可单击。我怎样才能实现它?这是我在 onCreate()
.
public void tileClick() {
if (image1.isPressed()) {
image1.setClickable(false);
image1.setImageResource(R.drawable.changes);
//clickable when image1 is pressed/clicked
image2.setClickable(true);
image5.setClickable(true);
image6.setClickable(true);
//unclickable
image3.setClickable(false);
image4.setClickable(false);
image7.setClickable(false);
image8.setClickable(false);
image9.setClickable(false);
image10.setClickable(false);
image11.setClickable(false);
image12.setClickable(false);
image13.setClickable(false);
image14.setClickable(false);
image15.setClickable(false);
image16.setClickable(false);
}
}
自定义点击监听器 //获取ImageButton字母
View.OnClickListener myCommoClickListner = new View.OnClickListener(){
@Override
public void onClick(View arg0) {
Log.i(TAG, "arg0.getId()=" + arg0.getId());
if (arg0.getId()==R.drawable.a){
Log.i(TAG,"arg0.getId()="+arg0.getId());
generatedString=generatedString+("a");
text.setText(generatedString);
//change ImageButton's background when clicked
((ImageButton) arg0).setImageResource(R.drawable.changea);
//Set ImageButton clickable = false when already clicked
arg0.setClickable(false);
}
}
};
//all 16 ImageButtons declared like this :
image1.setOnClickListener(myCommoClickListner);
更改您的方法以接受 ImageButton
public void tileClick(ImageButton clickedBtn) {
// validation logic
}
将点击的 ImageButton
传递给 onClick()
View.OnClickListener myCommoClickListner = new View.OnClickListener(){
@Override
public void onClick(View arg0) {
...
tileClick((ImageButton) arg0) // should change arg0 to something meaningful (v, view, etc...)
...
}
}
};
然后根据传入的按钮设置按钮可点击true/false
您可以将 ImageButtons
放在 Array
中并遍历它们并根据按下的按钮设置可点击。