Android偏好问题

时间:2011-01-19 00:17:03

标签: android preferences

我正在关注本教程:link text

Preferences.java:

public class Preferences extends PreferenceActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
}

}

PreferencesTutorial.java:

public class PreferencesTutorial extends Activity{

@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button prefBtn = (Button) findViewById(R.id.prefButton);
        prefBtn.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                        Intent settingsActivity = new Intent(getBaseContext(),
                                        Preferences.class);
                        startActivity(settingsActivity);
                }
        });
 }

}

的preferences.xml: alt text

当应用程序启动时,我点击prefButton,出现错误:“应用程序PreferencesTutorial(进程PreferencesTutorial.com.examples)已意外停止。请再试一次”

我没有在代码中发现任何错误。 如果有帮助,我还想展示我的文件结构: alt text

的AndroidManifest.xml: alt text

代码有什么问题?

即使我添加(光标在哪里)

<activity
        android:name=".Preferences"
        android:label="@string/set_preferences">
    </activity>

我仍然得到错误。

4 个答案:

答案 0 :(得分:1)

尝试删除此导入(如果有);

import java.util.prefs.Preferences;

答案 1 :(得分:0)

您的清单中可能没有定义Preferences

但是,正如其他人所指出的那样,在Eclipse中使用adb logcat,DDMS或DDMS透视图来检查LogCat并查看与崩溃相关的堆栈跟踪。

答案 2 :(得分:0)

在PreferencesTutorial类中的OnClick或者首选项类中的onCreate中是否引发了错误?在不同的位置粘贴几个Log.d(“Debug”,“%ID”),看看哪一个没有被调用。

答案 3 :(得分:0)

你必须在你的androidManifest.xml文件中提到这个

<activity
        android:name=".Preferences"
        android:label="@string/set_preferences">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT"/>

        </intent-filter>  
</activity>