Bil*_*ris 61 android android-preferences android-fragments
我正在努力完成一些我觉得很容易的事情,但是我对如何使用PreferenceActivity类和xml preference-header标签来实现它感到困惑.
当用户点击应用设置图标时,我希望它们会显示一个小的复选框和列表列表.我只有一个偏好片段.到目前为止,我可以设置PreferenceActivity xml文件(preferences.xml和首选项片段xmls)来显示首选项片段的单个标头.当用户选择该标题时,首选项屏幕正是我想要的,但是,我无法找到跳过显示第一个标题屏幕的方法.
必须点击设置/首选项图标,显示单个标题然后点击以获得实际设置/首选项似乎是浪费.
我理解如果你想对你的偏好进行分类,这会非常有用,但对于简单的事情,这会增加开销并且看起来相当笨重.
我希望我很清楚.总之,这是我的问题:
使用PreferenceActivity类和preference-header标签的新首选方法是简单地显示没有标题的单个选项屏幕?
在环顾四周之后,看起来我正试图以旧的方法直接进行.我试图在不使用任何已弃用的函数的情况下执行此操作.
在此先感谢,B.
小智 90
新的首选方式是将单个显示PreferenceFragment为任何活动的主要内容.它不需要PreferenceActivity.请参阅API演示示例
public class FragmentPreferences extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction().replace(android.R.id.content,
new PrefsFragment()).commit();
}
public static class PrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
}
Run Code Online (Sandbox Code Playgroud)
How*_*son 25
我正在寻找符合这个问题的答案.最后,我从其他几个来源解决了这个问题.对于那些可能仍然希望得到回答的人来说,这对我有用.(注意 - 此项目中的最小和目标SDK都设置为15.)
显示单个设置屏幕的首选项类.
public class SettingsActivity extends PreferenceActivity {
private final static String TAG = "SettingsAcitivity";
public SettingsActivity() {}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyLog.d(TAG, "onCreate");
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new LocationFragment()).commit();
}
public class LocationFragment extends PreferenceFragment {
private final static String TAG = "LocationFragment";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyLog.d(TAG, "onCreate");
addPreferencesFromResource(R.xml.locationsettings);
}
}
}
Run Code Online (Sandbox Code Playgroud)
显示设置的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
MyLog.d(TAG, "onOptionsItemSelected");
switch (item.getItemId()) {
case R.id.menu_main_help:
break;
case R.id.menu_main_about:
break;
case R.id.menu_main_settings:
MyLog.d(TAG, "Settings");
Intent settingsIntent = new Intent(this, SettingsActivity.class);
startActivity(settingsIntent);
break;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
Back键终止SettingsActivity.内置的首选例程保存任何更改.onResume函数我有一个getSettings()来更新调用活动使用的任何更改的设置(本例中为MainActivity).
而已.
| 归档时间: |
|
| 查看次数: |
14804 次 |
| 最近记录: |