我正在设置我的偏好设置屏幕,但我似乎无法让我的偏好设置正常工作。
我创建了一个名为SettingsActivity
的新空白活动,该活动扩展了PreferenceActivity
并从setContentView(R.layout.activity_settings);
方法移除了onCreate
,并将其替换为addPreferencesFromResource(R.xml.preferences);
。
在我的主要活动课程中,当我点击Android默认创建的设置按钮时,我设置了一个新的意图来调用我的SettingsActivity
类。
我在我的preferences.xml
添加了一个测试项目并使用此结果运行它。导航栏发生了什么变化?我必须做些什么来添加它吗? Android Studio显示已弃用addPreferencesFromResource
。我该怎么办?
调用SettingsActivity
的MainActivity方法@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
SettingsActivity
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
这是我的preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBoxPreference
android:key="test check box"
android:title="Test"
android:defaultValue="false"/>
</PreferenceScreen>
答案 0 :(得分:5)
从API 11开始,您应切换到PreferenceFragment,这样您就可以Activity
延伸ActionBarActivity
(这会为您提供操作栏)。
public static class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
...
}
public class SettingsActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
}
来源:http://developer.android.com/guide/topics/ui/settings.html#Fragment