-3

我正在使用MyActivity extends Activity implements OnClickListener{

此活动引用了大约 10 多个按钮,并setOnClicklistener(this)在每个按钮上调用了方法。

@Override 
public void onClick(View v){
    //here I need to get the id of the view that was clicked...
    //Depending on the button that was clicked different actions need to be called...
    //How do I get the ID of the button that was clicked...
}
4

5 回答 5

3
@Override 
public void onClick(View v){
switch(v.getId()){
    case R.id.btnCancel:
        //your code for onclick of that button
        break;
}
于 2013-05-01T10:22:27.883 回答
1

您可以使用以下方法获取 id。

v.getId()
于 2013-05-01T10:22:57.407 回答
1
  @Override 
    public void onClick(View v){
        int id = v.getId();
        if(id == R.id.button_ok){

         }

    }
于 2013-05-01T10:23:26.797 回答
1

View发送到您的方法的参数onClick是实际单击的按钮,因此您可以检查它是哪一个,例如:

@Override 
public void onClick(View v){
    switch(v.getId()) {
        case R.id.button_1: ...; break;
        case R.id.button_2: ...; break;
        case R.id.button_3: ...; break;
        ...
        default: //unknown button clicked
    }
}

这只是一种选择,还有其他选择。搜索谷歌以获取更多信息。

于 2013-05-01T10:25:31.457 回答
1

采用 :

if(v.getId()==R.id.whatever)
{
// do something
}

或者你甚至可以使用: Button btn = (Button)findViewById(R.id.btn);

if(v==btn)
{
// do something
}

但不推荐第二个。

于 2013-05-01T11:09:54.493 回答