我照着官方API http://android.toolib.net/guide/topics/ui/settings.html 实现一个设置界面,点击menu进入设置Activity 功能还没写完,一点menu 就报错
其中设置界面采用官方推荐的frangment形式:
设置界面的activtiy :
public class settingActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content,new settingFragment()).commit();
}
}
设置界面的fragment:
public class settingFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.setting);
}
}
R.xml.setting :
<?xml version="1.0" encoding="utf-8"?>
<PreferenceStreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="settings"
android:title="设置">
<PreferenceCategory
android:key="basic"
android:title="基本设置">
<EditTextPreference
android:key="text"
android:title="文本"
/>
<CheckBoxPreference
android:key="lightMode"
android:title="夜间模式"
android:summaryOn="已启用"
android:summaryOff="未启用"/>
<ListPreference
android:key="textSize"
android:title="文字大小"
android:dialogTitle="文字大小"
android:entries="@array/textSize_entry"
android:entryValues="@array/textSize_entry_value"
android:defaultValue="0"/>
</PreferenceCategory>
<PreferenceCategory
android:key="clean"
android:title="清除记录">
<Preference
android:key="cleanHistory"
android:title="清除历史记录"/>
</PreferenceCategory>
</PreferenceStreen>
报错:
11-08 15:58:59.570: E/AndroidRuntime(4108): FATAL EXCEPTION: main
11-08 15:58:59.570: E/AndroidRuntime(4108): java.lang.NoSuchMethodError: com.example.android_preference.settingActivity.getFragmentManager
11-08 15:58:59.570: E/AndroidRuntime(4108): at com.example.android_preference.settingActivity.onCreate(settingActivity.java:15)
11-08 15:58:59.570: E/AndroidRuntime(4108): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-08 15:58:59.570: E/AndroidRuntime(4108): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1612)
11-08 15:58:59.570: E/AndroidRuntime(4108): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1664)
11-08 15:58:59.570: E/AndroidRuntime(4108): at android.app.ActivityThread.access$1500(ActivityThread.java:118)