MainActivity的代码
package black_lotus.blacklotus;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.*;
import android.view.View.OnClickListener;
import android.view.View;
import android.content.Intent;
public class MainActivity extends Activity {
public final static String SECOND="SECOND";
public final static String THIRD="THIRD";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=(Button)findViewById(R.id.btn1);
btn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent=new Intent();
intent.setAction("black_lotus.blacklotus.MainActivity."+SECOND);
intent.addCategory("black_lotus.blacklotus.MainActivity."+THIRD);
startActivity(intent);
}
});
}
AndroidMainfest.xml的关于第二个窗口的代码
android:name=".second_activity"
android:label="第二个窗口">
<intent-filter>
<action android:name="SECOND"/>
<category android:name="android.intent.category.THIRD"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
但是logcat里就是说No Activity found to handle Intent,我在网上查了不少资料也没有发现哪里有错,求大家帮帮忙看看哪里出错,谢谢
上面 intent.setAction("black_lotus.blacklotus.MainActivity."+SECOND);
intent.addCategory("black_lotus.blacklotus.MainActivity."+THIRD);
这两句改成intent.setAction(black_lotus.blacklotus.MainActivity.SECOND);
intent.addCategory(black_lotus.blacklotus.MainActivity.THIRD);也不行
你是想实现什么效果??
你没有告诉intent打开哪个activity,你要setclass
你的第一个方案和第二个方案action和category都写错了,别写错了。
应该这样:
intent.setAction("SECOND");
intent.addCategory("android.intent.category.THIRD");
实在不行,干脆把setaction这段去掉。
1、使用隐士意图时,传入的action和category应该是目标Activity的属性。
你的目标Activity的属性是:
<intent-filter>
<action android:name="SECOND"/>
<category android:name="android.intent.category.THIRD"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
2、但是你启动它的时候写的确是:
Intent intent=new Intent();
intent.setAction("black_lotus.blacklotus.MainActivity."+SECOND);
intent.addCategory("black_lotus.blacklotus.MainActivity."+THIRD);
startActivity(intent);
你觉得你设置的和Manifest.xml中写的一样吗?所以日志提示No Activity found to handle Intent,因为确实没有Activity的action、category与你写的一致。
3、正确的写法如下:
Intent intent=new Intent();
intent.setAction("SECOND");
intent.addCategory("android.intent.category.THIRD");
startActivity(intent);