Android中的Onclick Listeners

时间:2012-04-23 07:24:17

标签: android

假设我有三个按钮,其所有听众都指向(this)。因此,如果我按下任何一个按钮,它将从活动开始时开始,而不管按下按钮?

3 个答案:

答案 0 :(得分:3)

不,它将继续您的活动的覆盖方法onClick()

listeners point to (this)

您必须对您的活动实施onClickListener,这将覆盖onClick()

要验证哪个视图已被点击,您必须执行类似

的操作
@Override
public void onClick(View v)
{
    if(v== controlName)
       // controlName is clicked
}

答案 1 :(得分: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;
        }
}

答案 2 :(得分:-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!");
        }
    });
   }

}

希望它有所帮助。干杯