1

当我使用此代码时,我得到一个 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;
}
});
}

很公平,除了我不知道它希望我如何告诉它活动在哪里。以下是 Manifest 的相关部分:

   <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;
4

3 回答 3

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 替换为您当前的活动名称 ..

于 2013-08-27T20:03:07.047 回答
1

constructorfor将new Intent(String action)action 作为参数。

根据您的清单,您正在使用的操作是android.intent.action.SETTINGS

1.所以你的意图应该如下

Intent intentSettings = new Intent("android.intent.action.SETTINGS");

或者

2.可以使用Activity名称直接调用Activity,

Intent intentSettings = new Intent(this, Settings.class);

或者

3.您还可以定义一个自定义动作like net.stuffilike.intent.action.SETTINGS,然后使用它来创建您的Intentlike

Intent intentSettings = new Intent("net.stuffilike.intent.action.SETTINGS");
于 2013-08-27T20:17:24.950 回答
0

有两种方法可以做到这一点。

  1. 使用actionString让系统看看有什么Activity可以解析上的action Intent。如果有多个Activity可以解决该操作,用户将获得一个选项来选择他们想要的一个。

    Intent intentSettings = new Intent("android.intent.action.SETTINGS");
    
  2. 直接使用它的类打开Activity(只能在两个Activitys在同一个应用程序中)。

    Intent intentSettings = new Intent(this, Settings.class);
    
于 2013-08-27T20:09:40.560 回答