首页 > 解决方案 > Android:许多按钮上的相同 OnClickListener

问题描述

我正在尝试在一个片段上的许多按钮上设置相同的 OnClickListener。

所以我试图让听众在课堂之上,比如

public class SigninUserInsurance extends Fragment {

       Button.OnClickListener thisListener = new Button.OnClickListener(){
             @Override
             public void onClick(View v){
                    .....
             }
       }

但是,我想保存按钮的文本。(button.getText())。

但在 ... 部分,

因为 thisListener 没有女巫按钮,它只获取视图,

我不能调用 getText()。v.getText() 不存在。

例如,我在 ... 部分尝试了我的代码,如下所示,

 preferenceEditor.putString("User Insurance", Button.getText());
 preferenceEditor.commit();
 activity.fragChanger(4);

在第一行,无法调用 Button.getText() 因为 thisListener 确实

没有按钮信息。

有没有办法不实现每个自己的听众每10~20个按钮?

标签: javaandroidonclicklistenerandroid-button

解决方案


你可以像这样定义一个监听器对象:

  View.OnClickListener thisListener = new View.OnClickListener() {
    public void onClick(View v) {
        Button button = (Button) v;
        switch (v.getId()) {
            case R.id.button1:
                 preferenceEditor.putString("User Insurance", button.getText());
                 preferenceEditor.commit();
                 activity.fragChanger(4); 
                 break;
            case R.id.button2:
                // 
                break;
            //...............
        } 
    }
  }

并将此侦听器设置为您的所有按钮:

button1.setOnClickListener(thisListener);
button2.setOnClickListener(thisListener);
..........................................

推荐阅读