无法从库启动活动

时间:2013-01-17 05:04:32

标签: android

我想从图书馆开始活动。我的小测试如下:

我将此代码放入主要活动中,这不是库:

public class MainActivity extends Activity {

    MyTest myTest;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myTest = new MyTest(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public void helpPressed(View view) {
        myTest.startNewActivity();
    }
    public void localHelpPressed(View view) {
        Intent helpIntent = new Intent(this, LocalHelp.class);
        startActivity(helpIntent);
    }
}

将此代码放入库中的“myTest”:

public class MyTest {
    Context context;
    public MyTest(Context context) {
        this.context = context;
    }
    public void startNewActivity() {
        Intent helpIntent = new Intent(context, HelpActivity.class);
        context.startActivity(helpIntent);
    }
}

我将“HelpActivity”添加到库,将LocalHelp添加到应用程序。

代码可以很好地创建'LocalHelp'(通过调用localHelpPressed方法),但不能创建'HelpActivity'(通过调用helpPressed方法)。 'HelpActivity'给出了这个错误:

01-16 23:49:17.940: E/AndroidRuntime(4736): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {test.activity/com.example.test.activity.library.HelpActivity}; have you declared this activity in your AndroidManifest.xml?
01-16 23:49:17.940: E/AndroidRuntime(4736):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1556)
01-16 23:49:17.940: E/AndroidRuntime(4736):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1431)
01-16 23:49:17.940: E/AndroidRuntime(4736):     at android.app.Activity.startActivityForResult(Activity.java:3391)

我正在尝试甚至可能吗? - 为图书馆创建生活在图书馆内的活动?

现在(在我的实际应用程序中)我将帮助屏幕移动到项目,并创建了一个回调,当需要帮助屏幕时,库会调用它。这有效,但听起来不对,加上包含库的每个项目都需要有这种回调方法。

1 个答案:

答案 0 :(得分:3)

在清单文件中声明help activity

<application ... >
    <activity
        android:name="com.example.test.activity" >...