在重新运行应用程序时,微调器项目如何不保持选中状态



你好,我想知道如何在整个活动中保持微调器项目的选中状态,这样,如果我从其他活动返回到由微调器组成的活动,它仍然保持选中状态。

我使用的上述语句在这之后得到了解决,还有一个问题是,每当我重新启动应用程序时,它的选定部分都保持原样,我想知道我能做些什么,这样微调器就不会显示我在之前选择的内容

我有一个微调器的代码,我想在所有活动中都选择它,

daySelection = (Spinner)findViewById(R.id.daypreferance);
        //String[] dayName = new String[]{
          //      "sunday", "monday", "tuesday" 
        //};
        MyClass[] dayName ={
                new MyClass("sunday", ""),
                new MyClass("monday", "2"),
                new MyClass("tuesday", "3")

        };
        ArrayAdapter<MyClass> adapter = new ArrayAdapter<MyClass>(this , R.layout.spinner_items ,R.id.spinneritem,dayName);
        adapter.setDropDownViewResource(R.layout.spinner_items);
        hotelSelection.setAdapter(adapter);
        daySelection.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                preferDay=  parent.getItemAtPosition(position).toString();

            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
public void onPause() {
        super.onPause();
        daySelection = (Spinner)findViewById(R.id.daypreferance);

        SharedPreferences prefs = getSharedPreferences("prefs_name", Context.MODE_PRIVATE);
        prefs.edit().putInt("spinner_indx", daySelection.getSelectedItemPosition()).apply();
    }
 public void onResume() {
        super.onResume();
        daySelection = (Spinner)findViewById(R.id.daypreferance);

        SharedPreferences prefs = getSharedPreferences("prefs_name", Context.MODE_PRIVATE);
        int spinnerIndx = prefs.getInt("spinner_indx", 0);

        daySelection.setSelection(spinnerIndx);
    }

我需要添加代码,每当我重新启动应用程序时,它的选定部分都保持原样,我想知道我能做什么,这样微调器就不会显示我在之前选择的内容

尝试dis,如果有任何错误,请告诉我。。。。

daySelection = (Spinner)findViewById(R.id.daypreferance);
            //String[] dayName = new String[]{
              //      "sunday", "monday", "tuesday" 
            //};
            MyClass[] dayName ={
                    new MyClass("sunday", ""),
                    new MyClass("monday", "2"),
                    new MyClass("tuesday", "3")

            };
            ArrayAdapter<MyClass> adapter = new ArrayAdapter<MyClass>(this , R.layout.spinner_items ,R.id.spinneritem,dayName);
            adapter.setDropDownViewResource(R.layout.spinner_items);
            hotelSelection.setAdapter(adapter);
            daySelection.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    //check if preferDay has some valur rhen set on spinner
                     if(preferDay!=null)
    {
                     daySelection.setSelection(Integer.parseInt(preferDay));
    }

                }
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });

您可以保存活动状态,然后在返回后设置这些值

检查这个堆栈溢出问题和这个

在onPause((方法中保存微调器的状态。

@Override
public void onPause() {
   super.onPause();
   Spinner spinner = (Spinner)findViewById(R.id.daypreferance);
   SharedPreferences prefs = getSharedPreferences("prefs_name", Context.MODE_PRIVATE);
   prefs.edit().putInt("spinner_indx", spinner.getSelectedItemPosition()).apply();
}

在onResume((方法中恢复微调器的状态。

@Override
public void onResume() {
   super.onResume();
   Spinner spinner = (Spinner)findViewById(R.id.daypreferance);
   SharedPreferences prefs = getSharedPreferences("prefs_name", Context.MODE_PRIVATE);
   int spinnerIndx = prefs.getInt("spinner_indx", 0);
   spinner.setSelection(spinnerIndx);
}

最新更新