如何在OnClickListener中访问变量

时间:2013-06-23 21:23:01

标签: java android click listener

我在单击侦听器中创建了一个double,我希望在同一个java文件中的单独的单击侦听器中访问它。每当我输入变量名称时,它都会显示为红色,是否可以执行此操作?

3 个答案:

答案 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