我正在开发一个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>
简单的代码。不想使用意图过滤器所以请给我替代我可以在这种情况下使用。
答案 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();