Android : 许多按钮上有相同的 OnClickListener
Android : Same OnClickListener on many buttons
我试图在一个片段的多个按钮上设置相同的 OnClickListener。
所以我试着让监听器在class之上,比如
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个按钮各自的监听器吗??
您可以像这样定义一个侦听器对象:
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);
..........................................
我试图在一个片段的多个按钮上设置相同的 OnClickListener。
所以我试着让监听器在class之上,比如
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个按钮各自的监听器吗??
您可以像这样定义一个侦听器对象:
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);
..........................................