0

我在 Android 中尝试了这个示例:方法 OnClickListener() 未定义 View 类型 ,但在 .getC() 处出现错误:

error at The method getC() is undefined for the type View.OnClickListener

希望有人能帮我弄清楚。还是有另一种可能在侦听器中生成值?

 View.OnClickListener myListener = new View.OnClickListener() {
        double c;

        // in case you need to use C elsewhere
        public double getC() {
            return c;
        }

        @Override
        public void onClick(View v) {
            // get A and B values
            // then use either
            c = a - b;
            // or I guess use 
            c = c - b;
        }
    };

    myButton.setOnClickListener(myListener);

    int x= myListener.getC();
4

1 回答 1

0

您可以在匿名类中声明变量甚至公共方法,但是您无法引用它们,因为您的类无法被引用。

您应该将该匿名类更改为嵌套类,以便访问其中声明的成员和方法:

MyOnclickListener myListener = new MyOnclickListener();

private final class MyOnclickListener implements View.OnClickListener
{
    double c;

    // in case you need to use C elsewhere
    public double getC()
    {
        return c;
    }

    @Override
    public void onClick(View v)
    {
        // get A and B values
        // then use either
        c = a - b;
        // or I guess use
        c = c - b;
    }
}
于 2012-05-14T10:12:36.243 回答