【发布时间】:2012-07-29 12:40:02
【问题描述】:
我感觉很愚蠢。这很清楚,但我无法解决我的问题。所以请原谅我的问题。
我的问题是关于 intenfilter。这是我的清单文件的应用程序标记:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".AlakyTestActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="reza"
android:name=".A2" >
<intent-filter >
<action android:name="MAIN" />
<category android:name="LAUNCHER" />
</intent-filter>
</activity>
</application>
这是我的按钮点击监听器:
b1 = (Button)findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent2 = new Intent();
intent2.setAction("MAIN");
intent2.addCategory("LAUNCHER");
startActivity(intent2);
}
});
我认为一切都很好,但是当我运行我的代码并点击b1时,我得到了这个错误:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=MAIN cat=[LAUNCHER] }
编辑:
这是A2:
public class A2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main2);
}
}
请帮帮我。
【问题讨论】:
-
您没有名为
A2的活动;就像public class A2 extends Activity{.... 我建议你先阅读更多关于 Android 开发的知识。 -
在
A2这个名字前面加上句号,像这样...android:name=".A2"。尽管如此,尽管您可以在自己的包中使用任何名称intnet-filter输入您的操作和类别,但使用MAIN和Launcher有点令人困惑 - 使用更能代表A2活动所做的事情. -
@t0mm13b 好的,谢谢,我将
A2添加到我的问题中。 -
@Squonk 谢谢,我在'A2'前面加了
.,但它不起作用。你还有其他想法吗? -
@StudentStudent :
A2活动是否与AlakyTestActivity在同一个包中?
标签: android intentfilter