我正在使用switchcase来进行optionmenu。但是我得到了一些错误。我已经检查了logcat也说了
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.app1.ABOUT }
下面给出了我在java类中编写的一小段代码。
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.aboutus:
Intent i = new Intent("com.app1.ABOUT");
startActivity(i);
break;
case R.id.preferences:
Intent s = new Intent("com.app1.PREFS");
startActivity(s);
break;
case R.id.exit:
finish();
break;
}
return false;
}
以及android清单的代码如下所示。
<activity
android:name="com.app1.Aboutus"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog" >
<intent-filter>
<action android:name="android.intent.action.ABOUT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
我是否以正确的方式从我的java类中裁判清单?
答案 0 :(得分:3)
试试这个你的清单..
<activity
android:name="com.app1.Aboutus"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.app1.ABOUT"/>
<activity android:name="com.app1.PREFS"/>
在java中
case R.id.aboutus:
Intent i = new Intent(Aboutus.this, ABOUT.class);
startActivity(i);
break;
case R.id.preferences:
Intent s = new Intent(Aboutus.this, PREFS.class);
startActivity(s);
答案 1 :(得分:0)
// I can modify like this
Intent i = new Intent(Activity1.ths, Activity2.class);
startActivity(i);
答案 2 :(得分:0)
您在意图中使用的包名称&amp;你清单中的名字是不同的。因此,将清单中的活动名称更改为:
<activity android:name="com.app1.ABOUT"/>
<activity android:name="com.app1.PREFS"/>
因为这些是你在意图中使用的名字。
Intent s = new Intent("com.app1.PREFS");
因此,清单和版本中的名称应该相同。在意图中使用。