使用此代码时出现ActivityNotFoundException:
public void addListenerOnButton3(){
button3 = (Button) findViewById(R.id.btnSettings);
button3.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
Intent intentSettings = new Intent("net.stuffilike.kanaflash.Settings");
showToast("Settings clicked,");
try{
startActivity(intentSettings);
}
catch(Exception e){
showToastL("Exception" + e);
}
return;
}
});
}
很公平,除了我不知道它是怎么想让我告诉它活动在哪里。以下是清单的相关部分:
<activity
android:name="net.stuffilike.kanaflash.Settings"
android:label="@string/settings" >
<intent-filter>
<action android:name="android.intent.action.SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
如何确定编译器找到我的Settings.java文件? 哦,我的包名为
package net.stuffilike.kanaflash;
答案 0 :(得分:1)
试试这个
@Override
public void onClick(View arg0) {
Intent intentSettings = new Intent(X.this,Settings.class);
showToast("Settings clicked,");
try{
startActivity(intentSettings);
}
catch(Exception e){
showToastL("Exception" + e);
}
return;
}
});
将X替换为您当前的活动名称..
答案 1 :(得分:1)
constructor
new Intent(String action)
采取行动作为参数。
根据您的清单,您使用的操作是android.intent.action.SETTINGS
,
1.所以你的意图应该如下
Intent intentSettings = new Intent("android.intent.action.SETTINGS");
或
2.您可以使用活动名称
直接调用活动Intent intentSettings = new Intent(this, Settings.class);
或
3.您还可以定义net.stuffilike.intent.action.SETTINGS
等自定义操作,然后使用此操作创建Intent
Intent intentSettings = new Intent("net.stuffilike.intent.action.SETTINGS");
答案 2 :(得分:0)
有两种方法可以做到这一点。
使用操作String
让系统查看Activity
可以解决Intent
上的操作的问题。如果有多个Activity
可以解决操作,则用户可以选择选择他们想要的操作。
Intent intentSettings = new Intent("android.intent.action.SETTINGS");
直接使用其类打开Activity
(只有当两个Activity
位于同一个应用中时才能这样做。)
Intent intentSettings = new Intent(this, Settings.class);