0

次のように、ボタンリスナーを複数のボタンに割り当てています。

    for(Button b : buttons)
    {
        b.setOnClickListener(clicklisten);
    }

ボタン リスナーは次のように定義されます。

private OnClickListener clicklisten = new OnClickListener()
{
    public void onClick(View v)
    {
        Context context = getApplicationContext();
        text = Toast.makeText(context, " Button Clicked", Toast.LENGTH_SHORT);
        text.show();
    }
};

そのままでは、「ボタンがクリックされました」と表示されたトーストが表示されます。おそらくそのボタンの名前またはID(XMLで定義されている)を介して、どのボタンがクリックされたかを検出し、それに基づいて何かを表示したいと思います。この方法でコードを介してその情報を取得することは可能ですか?

4

2 に答える 2

0

または、次のように書くこともできます...onClickメソッドで渡されるビューvは...クリックされたボタンです..そのビューがどのボタンとも等しいかどうかを確認できます...

View.OnClickListener myOnlyhandler = new View.OnClickListener() {
  public void onClick(View v) {
      if( button1.equals(v)){
          // it was the button1
      }
      else if( button2.equals(v)){
          // it was the button2
      }
  }
}
于 2013-02-13T03:39:38.643 に答える