1

私のAndroidアプリケーションでは、ボタン画像を1秒間変更しています。ボタンのグループがあります。その 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...");

        }
    });
}
}
}

 }
4

2 に答える 2

2

ボタンにonClickListenerを追加するのを忘れたようです。

追加してみてください

 but1.setOnClickListener(this);
    but2.setOnClickListener(this);

あなたのコードに。

于 2013-02-11T06:23:15.590 に答える
0

このためには、コードから呼び出す必要がありbuttonObj.setOnClickListener(this);ます。あなたがあなたの活動thisに追加しようとしているので、私は追加しました。public void onClick(View v)また、でonClickListnerを継承implementing View.onClickListneryourActivityます。

したがって、2つの変更が必要です

Class YourActivity extends Activity implements View.onClickListener 

buttonObj.setOnClickListener(this); // must be after initializing buttonObject
于 2013-02-11T06:23:55.200 に答える