我在单击侦听器中创建了一个double,我希望在同一个java文件中的单独的单击侦听器中访问它。每当我输入变量名称时,它都会显示为红色,是否可以执行此操作?
答案 0 :(得分:2)
是的,将其声明为您班级的全局变量。
class MainActivity
{
String editableString;
public void onCreate() { ... }
}
答案 1 :(得分:1)
当然!
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);
}
});
}
在这个例子中,我完全按照你的要求:)。只需将变量OUTSIDE声明为Listener,然后您就可以在任何地方访问它。注意:注意“NullPointerExceptions”。如果你声明了一些东西而没有初始化它,就像我做“String s;”一样,它的默认值是null。如果在初始化之前尝试访问它,则会收到null。
答案 2 :(得分:0)
您可以创建实现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;
}
}
您可能会发现这很有用,Create a custom event listener in Android