小编典典

在Java中,如何在新的侦听器块中访问静态方法参数?

java

我有一个接受几个参数的静态方法。在方法内部,我正在创建一个新对象并将新的侦听器附加到该对象。问题是侦听器块需要访问外部静态方法变量,但我不知道如何引用它们。我知道如何使用非静态方法来实现此目的,而不是使用静态方法。

这是代码:

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是一个内部块,因此它不知道那些对象。我该如何引用它们?


阅读 192

收藏
2020-11-26

共1个答案

小编典典

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

2020-11-26