Java 如何访问OnClickListener中的变量
我在一个点击式监听器中创建了一个double,我想在同一个java文件中的一个单独的点击式监听器中访问它。每次我输入变量名时,它都会显示为红色,是否可以这样做 是,将其声明为类的全局变量Java 如何访问OnClickListener中的变量,java,android,click,listener,Java,Android,Click,Listener,我在一个点击式监听器中创建了一个double,我想在同一个java文件中的一个单独的点击式监听器中访问它。每次我输入变量名时,它都会显示为红色,是否可以这样做 是,将其声明为类的全局变量 class MainActivity { String editableString; public void onCreate() { ... } } 当然 class X { String s; JTextField field1 = new JTextField();
class MainActivity
{
String editableString;
public void onCreate() { ... }
}
当然
class X {
String s;
JTextField field1 = new JTextField();
JTextField field2 = new JTextField();
JButton button = new JButton();
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
s = field1.getText();
field2.setText(s);
}
});
}
在本例中,我完全按照您的要求执行:)。只需在监听器外部声明变量,就可以随时随地访问它。注意:注意“NullPointerExceptions”。如果您在没有初始化的情况下声明某个内容,就像我在“String s;”中所做的那样,它的默认值为null。如果您在初始化它之前尝试访问它,您将收到null 您可以创建一个实现OnClickListener类的自定义侦听器类,并将该类的对象传递给setOnClickListener方法。您可以使用自定义类的构造函数在其内部设置全局变量。然后可以访问侦听器方法中的局部变量。我希望它能解决你的问题
abstract class CustomOnClickListener implements View.OnClickListener {
int id;
String name;
public abstract boolean onTouch(View v, MotionEvent event);
CustomOnClickListener(int id, String name){
this.id = id;
this.name = name;
}
}
您可能会发现这很有用,谢谢,最终我意识到它需要在我的班级中名列前茅,而且一切都很好。此外,请小心NullPointerException。当您“在类的最顶端”声明某个内容时,此错误非常常见:。