从活动列表中启动Android活动

时间:2013-05-15 11:44:10

标签: android android-intent intentfilter start-activity

我正在开发一个Android应用程序,其中我有一个显示活动名称列表的菜单。单击菜单中的任何项目都应启动该特定活动。

我知道这样做的一种方式是,

String classes[]= {"firstActivity","DetailActivity"}; intent i =new Intent(pkg_name+classes[position]);startActivity(i); 

其中position = 0或1。 为此,我需要在每个Activity的代码下面的AndroidManifest.xml文件中编写

<activity
        android:name="com.example.day1.DetailActivity"
         >
        <intent-filter>
            <action android:name="com.example.day1.DetailActivity" />
            <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>
    </activity>

但我想要

<activity android:name=".DetailActivity"></activity>

简单的代码。不想使用意图过滤器所以请给我替代我可以在这种情况下使用。

3 个答案:

答案 0 :(得分:0)

使用此代码:

Class chooseClass = null;
switch(position)
{
case 0 : chooseClass = firstActivity;
         break;
case 1 : chooseClass = DetailActivity;
         break;
}
if(chooseClass != null)
    startActivity(new Intent(context, chooseClass);

答案 1 :(得分:0)

通过代码,您可以使用以下代码启动它:

Intent i = new Intent(this, DetailActivity.class);
startActivity(i);

现在您不需要过滤器。

答案 2 :(得分:0)

或者反过来

Class classes[] = [ firstActivity.class, DetailActivity.class];
Intent i = new Intent(this, classes[position]);
startActivity(i);

然后,当您想要显示活动的名称时,请使用classes[position].getSimpleName();