在我的Android应用程序中,我正在更改按钮图像1秒。有一组按钮。在任何一个按钮的1秒图像被更改。如果在那1秒内我点击那个特定的按钮我想要执行一些操作。使用onclick听众我试过但它不起作用。我怎样才能做到这一点?请帮我下面是代码 -
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.next);
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
if(time==-1){
onStop();
}
else
runOnUiThread(new Runnable() {
public void run() {
Random rand=new Random();
time=time-1;
but1=(Button) findViewById(R.id.b1);
but1.setBackgroundResource(R.drawable.happy);
but1.setContentDescription("happy");
but2=(Button) findViewById(R.id.b2);
but2.setBackgroundResource(R.drawable.happy);
but2.setContentDescription("happy");
int num = rand.nextInt(buttonIds.length);
int buttonId = buttonIds[num];
Button bb=(Button) findViewById(buttonId);
if(bb.getContentDescription().equals(button.getContentDescription()))
{
bb.setBackgroundResource(R.drawable.happy);
bb.setContentDescription("happy");
wrong++;
}
else
{
bb.setBackgroundResource(R.drawable.whoa);
count++;
bb.setContentDescription("whoa");
}
}
});
}
},0, 1000);
}
public void onClick(View v){
//when i clicked on any button its not even entering here
System.out.println("in onlcik............");
int aaa=v.getId();
System.out.println("click id is------------"+aaa);
for(i=0;i<9;i++){
if(aaa==buttonIds[i]){
findViewById(buttonIds[i]).setOnClickListener(new View.OnClickListener() {
Drawable dd=findViewById(buttonIds[i]).getBackground();
public void onClick(View arg0) {
System.out.println("yes...");
}
});
}
}
}
}
答案 0 :(得分:1)
您似乎忘了在按钮上添加onClickListener。
尝试添加
but1.setOnClickListener(this);
but2.setOnClickListener(this);
代码。
答案 1 :(得分:0)
为此,您需要从代码中调用buttonObj.setOnClickListener(this);
。
我在您的活动中尝试添加this
时添加了public void onClick(View v)
。还会在implementing
中View.onClickListner
yourActivity
继承onClickListner。
因此您需要进行两项更改
Class YourActivity extends Activity implements View.onClickListener
和
buttonObj.setOnClickListener(this); // must be after initializing buttonObject