android意图过滤器?

android意图过滤器?,android,intentfilter,Android,Intentfilter,我觉得自己很愚蠢。这很清楚,但我无法解决我的问题。所以请原谅我的问题。 我的问题是关于intenfilter。这是我清单文件的应用程序标记: <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name"

我觉得自己很愚蠢。这很清楚,但我无法解决我的问题。所以请原谅我的问题。
我的问题是关于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
时,我得到了以下错误:

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);
    }


}
请帮帮我。

请像那样使用:

Intent intent2 = new Intent(context,A2.class);
startActivity(intent2);
Intent intent = new Intent("com.my.app.REZA");
startActivity(intent);
startActivity(new Intent( this.getContext() , reza.class );
android:name=“.A2”
,您必须有
“A2”
活动类实现

修改为
android:name=“.A2”
,而不是
android:name=“A2”


希望这对您有用。

您应该将第二个活动的android:name设置为(包名)。(类) 例如,假设第二个活动类为'com.my.app.reza',您应该添加清单:

    <activity
        android:label="@string/app_name"
        android:name=".reza" >
        <intent-filter >
            <action android:name="com.my.app.REZA" />
            <category android:name="android.intent.category.DEFUALT" />
        </intent-filter>
    </activity>
请注意,这并不是最好的方法,您不应该过多地使用包名。我建议您采用以下方法:

    <activity
        android:label="@string/app_name"
        android:name=".reza" />

如果只需要在应用程序中调用
A2
,则无需指定类别。您应该设置唯一的操作名称,例如,它可以是哈希字符串:

...
Intent intent2 = new Intent("a202bfa923069ee8e119205e3468ee131ceafda37");
startActivity(intent2);

请注意,操作名称使用与包名称相同的规则。

您没有名为
A2
的活动;正如在
公共类A2扩展活动{
…我建议你先多读一点关于Android开发的知识,让自己感到舒服。在名称
A2
前面加一个句号,就像这样…
Android:name=“.A2”
。虽然您可以在自己的包
intnet filter
中使用任何名称来输入您的操作和类别,但使用
MAIN
Launcher
有点让人困惑-请使用更能代表
A2
活动的名称。@t0mm13b好的,谢谢我将
A2
添加到我的问题。@Squonk谢谢,我在“A2”前面添加了
,但它不起作用。你还有其他想法吗?@StudentStudent:
A2
活动与
AlakyTestActivity
活动在同一个包中吗?我必须在我的项目中使用
意图过滤器,而不是明确的意图。我必须在我的项目中使用意图过滤器,而不是明确的意图。
    <activity
        android:label="@string/app_name"
        android:name=".reza" />
startActivity(new Intent( this.getContext() , reza.class );
...
Intent intent2 = new Intent("a202bfa923069ee8e119205e3468ee131ceafda37");
startActivity(intent2);