【问题标题】:get value from listener -- method is undefindet for the type View.OnClickListener从侦听器获取值——View.OnClickListener 类型的方法未定义
【发布时间】:2012-05-14 18:12:36
【问题描述】:

我从Android: The method OnClickListener() is undefined for the type 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();

【问题讨论】:

    标签: android onclicklistener


    【解决方案1】:

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

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

    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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 2013-07-04
      相关资源
      最近更新 更多