当前位置: 代码迷 >> Android >> 隐式调用intent报错,找不到原因,请指点,多谢
  详细解决方案

隐式调用intent报错,找不到原因,请指点,多谢

热度:98   发布时间:2016-04-28 05:51:48.0
隐式调用intent报错,找不到原因,请指点,谢谢
第一个MainActivity 源码

public class MainActivity extends Activity {

public final static String MY_ACTION = "com.zkbao.intentactioncategorytest.action.MY_ACTION";
public final static String MY_CATEGORY="com.zkbao.intentactioncategorytest.category.MY_CATEGORY";
private Button startBtn = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startBtn = (Button)findViewById(R.id.startBtn);

startBtn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent();   //隐式调用,传递自定义的Action和category
intent.setAction(MainActivity.MY_ACTION);
intent.addCategory(MainActivity.MY_CATEGORY);

startActivity(intent);
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

第二个SecondActivity源码

public class SecondActivity extends Activity {

private TextView actionShowText=null;
private TextView categoryShow=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

actionShowText = (TextView)findViewById(R.id.actionShow);
categoryShow = (TextView)findViewById(R.id.categoryShow);

actionShowText.setText("action is: "+getIntent().getAction());
Set<String> cate = getIntent().getCategories();
categoryShow.setText("category is: "+cate);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.second, menu);
return true;
}

}

mainfest配置部分
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.zkbao.intentactioncategorytest.MainActivity"
            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.zkbao.intentactioncategorytest.SecondActivity"
            android:label="@string/title_activity_second" >
            <intent-filter>
                <action android:name="com.zkbao.intentactioncategorytest.action.MY_ACTION"/>
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.zkbao.intentactioncategorytest.category.My_CATEGORY"/>
                
            </intent-filter>
        </activity>
    </application>

可是运行程序,一点MainActivity按钮,报错:


看了很多网上都说是配置文件配置有问题,一般都是少了<category android:name="android.intent.category.DEFAULT" />,可是我已经加上了,还是出错,请指点,谢谢
------解决方案--------------------

category 你写错了
AndroidManifest.xml

My_CATEGORY

MainActivity 

MY_CATEGORY
  相关解决方案