0

すべてのリスナーが(this)を指す3つのボタンがあると仮定します。では、ボタンのいずれかを押すと、ボタンが押されているかどうかに関係なく、アクティビティの最初から開始されますか?

4

3 に答える 3

3

onClick()いいえ、 Activity のメソッドをオーバーライドします。

listeners point to (this)

オーバーライドする onClickListener をアクティビティに実装する必要がありますonClick()

どのビューがクリックされたかを確認するには、次のようにする必要があります

@Override
public void onClick(View v)
{
    if(v== controlName)
       // controlName is clicked
}
于 2012-04-23T07:26:12.843 に答える
0

あなたができることは、スイッチケースを使用して、クリックされたボタンが何であるかを知ることです.

これを試して:

class stuff extends Activity implements onClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        Button button1 = (Button) findViewById(R.id.button1);
        Button button2 = (Button) findViewById(R.id.button2);
        Button button3 = (Button) findViewById(R.id.button3);

        button1.setOnClickListener(this);
        button2.setOnClickListener(this); 
        button3.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1:
             // do something
             break;
        case R.id.button2:
             // do something else
             break;
        case R.id.button3:
             // do yet another thing
             break;
        default:
            // do nothing
            break;
        }
}
于 2012-04-23T07:40:14.723 に答える
-1

紛らわしい質問...

とにかく、ここにリスナーの例があります。

public class MyClass extends Activity {
   private Button firstBtn;
   private Button secondBtn;
   private Button thirdBtn;

   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    firstBtn  = (Button) findViewById(R.id.firstBtn);
    secondBtn = (Button) findViewById(R.id.secondBtn);
    thirdBtn  = (Button) findViewById(R.id.thirdBtn); 

    firstBtn.setOnClickListener(new OnClickListener()
    {           
        public void onClick(View v)
        {
            Log.d("MyClass", "first button clicked!");
        }
    });

    secondBtn.setOnClickListener(new OnClickListener()
    {           
        public void onClick(View v)
        {
            Log.d("MyClass", "second button clicked!");
        }
    });

    thirdBtn.setOnClickListener(new OnClickListener()
    {           
        public void onClick(View v)
        {
            Log.d("MyClass", "third button clicked!");
        }
    });
   }

}

それが役に立てば幸い。乾杯

于 2012-04-23T07:36:02.927 に答える