我正在编写一个Android应用程序,我想为用户提供一些他们可以自定义的设置。但是,每当我按溢出中的设置按钮时,它都不会加载设置,我的应用程序崩溃。
这是我的菜单和菜单切换器代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.action_settings:
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
以下是设置激活:
public class SettingsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
}
}
以下是首选项片段:
public class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
我应该采用另一种方式处理设置页面吗?我按照Android开发者网站的说明进行操作。
快速说明一下,如何存储这些设置并在主要活动中访问它们?
答案 0 :(得分:1)
你还记得在你的清单中放置SettingsActivity吗?
答案 1 :(得分:0)
请务必将其包含在AndroidManifest.xml文件中:
<activity
android:name=".SettingsActivity"
android:label="Settings"
android:theme="@style/AppTheme"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>