在我的应用程序中,我嵌套了PreferencesScreen的
<PreferencesScreen> <PreferencesScreen android:key="application"> </PreferencesScreen> </PreferencesScreen>
现在我想解雇Intent将我从currrent Activity直接带到应用程序首选项子屏幕.我怎样才能做到这一点?
解决方法
在我的应用程序中,我有类似的任务以编程方式显示第二级PreferencesScreen.我做了什么:
>在preferences.xml中,我为要显示的PreferencesScreen分配了一个键(如问题所示).
>要显示我写的PreferencesScreen:
final Intent preferencesActivity = new Intent(getBaseContext(),MyPreferencesActivity.class); preferencesActivity.putExtra("PREFERENCE_SCREEN_KEY","key_of_preference_screen_to_show"); startActivity(preferencesActivity);
>然后在方法onCreate的PreferenceActivity类中添加以下代码:
final Intent intent = getIntent(); final String startScreen = intent.getStringExtra("PREFERENCE_SCREEN_KEY"); if (startScreen != null) { getIntent().removeExtra("PREFERENCE_SCREEN_KEY"); final Preference preference = findPreference(startScreen); final PreferenceScreen preferenceScreen = getPreferenceScreen(); final ListAdapter listAdapter = preferenceScreen.getRootAdapter(); final int itemsCount = listAdapter.getCount(); int itemNumber; for (itemNumber = 0; itemNumber < itemsCount; ++itemNumber) { if (listAdapter.getItem(itemNumber).equals(preference)) { preferenceScreen.onItemClick(null,null,itemNumber,0); break; } } }
一句话……不仅是第二级的PreferencesScreen,而且这里加载了整个首选项层次结构.因此,如果按“返回”按钮,将显示第一个(父)PreferencesScreen.就我而言,这正是我所需要的.不确定你的.