java - 在Java中,如何访问新监听器 block 内的静态方法参数?

标签 java listener static-methods inner-classes

我有一个接受几个参数的静态方法。在该方法内部,我创建一个新对象并为其附加一个新监听器。问题是监听器 block 需要访问外部静态方法变量,但我不知道如何引用它们。我知道如何使用非静态方法实现这一点,但不知道如何使用静态方法。

这是代码:

v.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                case MotionEvent.ACTION_UP:             
                    ((Activity)*context*).startActivityForResult(*intent*, 0);
                    break;
                }

                return true;
            }
        });

星号包围的上下文和意图变量是传递到静态方法中的对象。由于 OnTouchListener 是一个内部 block ,因此它不知道这些对象。我如何引用它们?

最佳答案

在创建监听器之前,将静态方法的参数声明为 Final 或将传入的参数分配给静态方法中的 Final 局部变量。您可以使用匿名类定义内部的最终引用。

关于java - 在Java中,如何访问新监听器 block 内的静态方法参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12237477/

相关文章:

java - 添加 XA 数据源失败并显示 jboss-as-maven-plugin

java - 在泛型类型 "T"的对象和泛型类型 "<T extends Comparable<T>>"的对象之间进行转换

java - xml解析字符串匹配Java

java - 如何将JTextArea中选中的文本变成String?

java - 从 MainActivity 通知 onPostExecute 的 fragment

Android Spinner - onItemSelected/setOnItemSelectedListener 未触发

java - 从命令行调用静态 jar 类方法

Java HTTP GET 响应等待直到超时

JAVA如何求14位数值的总和?

c++派生类型的自动工厂注册