Android 带case的多个onclick侦听器

Android 带case的多个onclick侦听器,android,android-studio,switch-statement,case,onclicklistener,Android,Android Studio,Switch Statement,Case,Onclicklistener,以下是我正在做的示例: 您好,我想问一下,是否可以使用Case switch语句在单个OnClickListener上设置计算器按钮,如果有答案,这将非常有用您可以这样做: public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.on

以下是我正在做的示例:


您好,我想问一下,是否可以使用Case switch语句在单个
OnClickListener
上设置计算器按钮,如果有答案,这将非常有用您可以这样做:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    View.setonclickListner(this);//must add to each view for onclicklistener to work
}

@Override
public void onClick(View view) {
    int id =view.getId();
    switch(id){
        case R.id.View : 
            //your code here
            break;
    }
}

}是的,这是可能的。做以下事情:

  • 在活动中实现onclickListener并重写onClick方法
  • 在onCreate中,为所有按钮添加侦听器,如

     btn1.setonclickListner(this);
     btn2.setonclickListner(this); 
    
    等等

  • 在onCLick()方法中,使用switch case检查按钮的id值,如下所示:

    开关(v.getId()) 并使用您的按钮id制作案例,如R.id.btn1、R.id.btn2等


  • 显示您尝试了什么?您可以向视图中添加标记,然后在“单击侦听器获取标记”中确定您单击了什么。实际上,我尝试了使用case语句,但似乎无法在我的主要活动中实现它。很抱歉,我不太明白,我尝试了您的代码,但在使用setText()时,它似乎没有更改textview案例R.id.btn1:TextView TextView=(TextView)findViewById(R.id.tvsum);textView.setText(“123”);打破谢谢你的回答,但我希望我不需要那么多的setonclickListner,或者真的不可能为所有按钮指定一个条件setonclickListner如果不可能为所有按钮使用一个onclickListener,那么至少需要为所有按钮设置侦听器。