Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 退出后访问应用程序时,还原已保存的ActionBar选项选择的设置状态_Android_Android Actionbar - Fatal编程技术网

Android 退出后访问应用程序时,还原已保存的ActionBar选项选择的设置状态

Android 退出后访问应用程序时,还原已保存的ActionBar选项选择的设置状态,android,android-actionbar,Android,Android Actionbar,我正在使用对话框生成器在ActionBar中使用SingleChoiceItems。即使在退出应用程序后,我仍需要保存所选项目。再次访问应用程序时,请恢复保存的设置 先决条件->我看到了许多共享首选项、onRestoreInstance和OnSaveInstance的示例,但我很困惑。下面是代码,解释了我所做的事情 -对话框生成器-- 我在->selectPosition.中保存了所选选项的当前状态。。然后将选中在全局变量中保存selectedPosition并将其设置为SelectSingle

我正在使用对话框生成器在ActionBar中使用SingleChoiceItems。即使在退出应用程序后,我仍需要保存所选项目。再次访问应用程序时,请恢复保存的设置

先决条件->我看到了许多共享首选项、onRestoreInstance和OnSaveInstance的示例,但我很困惑。下面是代码,解释了我所做的事情

-对话框生成器--

我在->selectPosition.中保存了所选选项的当前状态。。然后将选中在全局变量中保存selectedPosition并将其设置为SelectSingleChoice参数

使用下面的代码。当我从thr应用程序长按“按主页”按钮的主页按钮时,所选设置似乎正常,它们被选中并保存在我发送消息时,以确保它们被选中,而onSaveInstanceState似乎正在工作,我猜是因为OnSaveInstance toast消息被显示。但当我尝试恢复通过如果使用RestoreInstanceMethod,则它将不起作用。。退出应用程序后,设置将返回默认设置

}

}

当我从应用程序中按home按钮或再次长按home按钮选择应用程序时,OnSaveInstanceStore的Toast将显示。但退出应用程序后,我无法恢复所选设置

如果你能用这些记忆法或其他方法帮助我,那将是值得感激的

谢谢

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();