如何使用Java Android保存微调器的状态

时间:2015-03-25 01:11:20

标签: android eclipse spinner state

我正在尝试保存微调器选择的状态。因此,如果我在微调器中选择一个选项并进入另一个活动,那么使用微调器返回活动,仍然应该选择该选项。我找到了一些教程但是我尝试过的教程已被弃用。

这是我的微调器:

   //language selection list    
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.language_list, android.R.layout.simple_spinner_item);

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {

           // storing string resources into Array
            lang_list = getResources().getStringArray(R.array.language_list);

            Toast.makeText(getBaseContext(), "You have selected : " + lang_list[index], 
                    Toast.LENGTH_SHORT).show();

           choice =  spinner.getSelectedItem().toString();


            final ImageView country_flag = (ImageView)findViewById(R.id.country);
            String s=((TextView)arg1).getText().toString();
            if(s.equals("English"))
                country_flag.setImageDrawable(getResources().getDrawable(R.drawable.eng_spinner));
            if(s.equals("German"))
                country_flag.setImageDrawable(getResources().getDrawable(R.drawable.german_spinner));
            if(s.equals("French"))
                country_flag.setImageDrawable(getResources().getDrawable(R.drawable.french_spinner));
            if(s.equals("Spanish"))
                country_flag.setImageDrawable(getResources().getDrawable(R.drawable.spanish_spinner));
        }

1 个答案:

答案 0 :(得分:0)

通过获取微调器当前所选位置的索引,将日期,时间等放入包中,将当前微调器的状态保存在onSaveInstanceState()上。之后,在onCreate()上,检查bundle == null是否为null,如果不是Spinner.setPosition()(如果您的活动因恢复原因而无法恢复),则会检索使用键存储在其中的值。最后,使用onCreate()内的{{1}}手动将值设置为微调器。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

这应该是一个很好的阅读。

相关问题