我有一个在单击侦听器中创建的双精度对象,我想在同一个 java 文件中的一个单独的单击侦听器中访问它。每次我输入变量名时,它都会以红色显示,是否可以这样做?
问问题
5082 次
3 回答
3
是的,将其声明为类的全局变量。
class MainActivity
{
String editableString;
public void onCreate() { ... }
}
于 2013-06-23T21:28:00.743 回答
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);
}
});
}
在这个例子中,我完全按照你的要求做了:)。只需在侦听器之外声明变量,然后您就可以在任何地方访问它。注意:当心“NullPointerExceptions”。如果你声明一些东西而不初始化它,就像我做的“String s;”,它的默认值为空。如果您在初始化之前尝试访问它,您将收到 null。
于 2013-06-23T21:35:09.097 回答
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;
}
}
您可能会发现这很有用,在 Android 中创建自定义事件侦听器
于 2020-10-31T05:57:22.050 回答