Android活动作为内部类

时间:2013-11-26 09:40:16

标签: android android-activity inner-classes

我正在尝试将Android Activity声明为内部类。这个Activity应该只由包含类生成,并且需要访问它的一些私有方法(我真的不想公开的方法。)。当试图产生它时,我明白了:

java.lang.InstantiationException: can't instantiate class com.foo.bar.baz$MyActivity; no empty constructor

在我的清单中正确声明了活动。这在Android中是不可能的吗?

编辑:部分代码

...
public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        // Do stuff that uses the parent class's functions
        ...
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (!forwardResultToParent(requestCode, resultCode, data)) {
            super.onActivityResult(requestCode, resultCode, data);
        } else {
            finish();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

内部类的实例具有对包含类的包含实例的引用。您只能从包含类的方法(或构造函数)创建内部类的实例。

可能你可以使内部类静态。只有在您提供明确的引用时,它才能访问父类字段,但我认为您可以使用它。

您还应考虑创建一个特殊包并使用包可见性。