Android 退出后访问应用程序时,还原已保存的ActionBar选项选择的设置状态
我正在使用对话框生成器在ActionBar中使用SingleChoiceItems。即使在退出应用程序后,我仍需要保存所选项目。再次访问应用程序时,请恢复保存的设置 先决条件->我看到了许多共享首选项、onRestoreInstance和OnSaveInstance的示例,但我很困惑。下面是代码,解释了我所做的事情 -对话框生成器-- 我在->selectPosition.中保存了所选选项的当前状态。。然后将选中在全局变量中保存selectedPosition并将其设置为SelectSingleChoice参数 使用下面的代码。当我从thr应用程序长按“按主页”按钮的主页按钮时,所选设置似乎正常,它们被选中并保存在我发送消息时,以确保它们被选中,而onSaveInstanceState似乎正在工作,我猜是因为OnSaveInstance toast消息被显示。但当我尝试恢复通过如果使用RestoreInstanceMethod,则它将不起作用。。退出应用程序后,设置将返回默认设置 } } 当我从应用程序中按home按钮或再次长按home按钮选择应用程序时,OnSaveInstanceStore的Toast将显示。但退出应用程序后,我无法恢复所选设置 如果你能用这些记忆法或其他方法帮助我,那将是值得感激的 谢谢Android 退出后访问应用程序时,还原已保存的ActionBar选项选择的设置状态,android,android-actionbar,Android,Android Actionbar,我正在使用对话框生成器在ActionBar中使用SingleChoiceItems。即使在退出应用程序后,我仍需要保存所选项目。再次访问应用程序时,请恢复保存的设置 先决条件->我看到了许多共享首选项、onRestoreInstance和OnSaveInstance的示例,但我很困惑。下面是代码,解释了我所做的事情 -对话框生成器-- 我在->selectPosition.中保存了所选选项的当前状态。。然后将选中在全局变量中保存selectedPosition并将其设置为SelectSingle
private void displaySortDialog() {
final CharSequence[] sort_options = {"Z-A", "A-Z", "Size"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.sort_apps));
builder.setSingleChoiceItems(sort_options, isChecked, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int selected_sort) {
Toast.makeText(getApplicationContext(), sort_options[selected_sort], Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
int selectedPosition = ((AlertDialog)dialog).getListView().getCheckedItemPosition();
Toast.makeText(getApplicationContext(), "Choose:"+selectedPosition, Toast.LENGTH_SHORT).show();
if(selectedPosition == 0){
Collections.shuffle(applist);
Toast.makeText(getApplicationContext(), "Shuffles the present order list", Toast.LENGTH_SHORT).show();
}
else if(selectedPosition == 1){
Collections.sort(applist, new ApplicationInfo.DisplayNameComparator(packageManager));
Toast.makeText(getApplicationContext(), "Sorts Alphabetically", Toast.LENGTH_SHORT).show();
}
else if(selectedPosition == 2){
Collections.reverse(applist);
Toast.makeText(getApplicationContext(), "Reverses the present order selected", Toast.LENGTH_SHORT).show();
}
isChecked = selectedPosition;
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder.create().show();
}
public void onRestoreInstanceState(Bundle savedInstanceState) {
if(savedInstanceState != null){
isChecked = savedInstanceState.getInt("SELECTED_SORT_ITEM");
Toast.makeText(getApplicationContext(), "RESTORED: "+isChecked, Toast.LENGTH_SHORT).show();
}
public void onSaveInstanceState(Bundle savedInstanceState) {
//outState.putInt(SELECTED_SORT_ITEM, getActionBar().getSelectedNavigationIndex());
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt(SELECTED_SORT_ITEM, isChecked);
Toast.makeText(getApplicationContext(), SELECTED_SORT_ITEM+isChecked, Toast.LENGTH_SHORT).show();