java - 如何在不使用外部类名称的情况下从内部类获取对外部类的引用?

标签 java android

示例代码如下:

Class SomeClass extends Activity {
    public void someMethod() {
        Runnable r = new Runnable() {
            public void run() {
                Intent service = new Intent(SomeClass.this, SomeOtherClass.class);
                // ...
            }
        }
    }
}

如何更改代码以不使用 SomeClass(在 new Intent(SomeClass.this, ...) 中)? 我想将这个示例放在多个类中,我不想每次都使用不同的类名。

最佳答案

较短的方法(建议):

将 Intent 中的 SomeClass.this 替换为 getApplicationContext() 应该可以解决问题。

我使用的方法(有点冗长,可能不是两者中最好的):

在每个类中,创建一个private Context mContext;
然后,在每个类的onCreate()中,使mContext = this;
最后,将 Intent 中的 SomeClass.this 替换为 mContext

关于java - 如何在不使用外部类名称的情况下从内部类获取对外部类的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11545088/

相关文章:

java - 调整动画 GIF 的大小,同时使用 java 保持它的动画

java - 找不到类 'android.support.v4.widget.DrawerLayout$1',从方法 android.support.v4.widget.DrawerLayout 引用

android - FFmpeg 无法为 android 构建

java - Jasper API 仅打印第一个报告,其他报告打印为空白

java - robotsium 测试项目在 eclipse 中构建,但不在 ant 中构建

android - 修改 Button 时 onResume 出现 NullPointerException,为什么?

android - 使用 Firebase BaaS 通过 Android 登录 Facebook

java - 如何阻止 ProGuard 从类中剥离可序列化接口(interface)

java - Spring boot + (JPA)-类别层次结构-递归遍历

java - simplexml android无法解析带有非结束元标记的html