保存微调器状态甚至移动到Android的另一个活动

时间:2015-02-23 01:45:35

标签: android spinner state

我想保存我的微调器状态,即使我移动到另一个活动并使用微调器回到页面,状态应该是相同的。我不知道怎么做,我在堆栈溢出的其他线程上看到了一些例子,但我不理解它们。

这是我的代码:

        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

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

            index = arg0.getSelectedItemPosition();
           // 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();
            // edit_cate.setText(choice);

            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)

您需要保存微调器的状态,这样才对您有所帮助。

1。)在创建微调器对象

后应用它
spinner.setSelection(getPersistedItem());

2。)根据您创建这些方法以保存微调器选定项目的状态

private int getPersistedItem() { 
String keyName = makePersistedItemKeyName();
 return PreferenceManager.getDefaultSharedPreferences(this).getInt(keyName, 0); 
} 
protected void setPersistedItem(int position) {
 String keyName = makePersistedItemKeyName();
 PreferenceManager.getDefaultSharedPreferences(this).edit().putInt(keyName, position).commit();
 } 
private String makePersistedItemKeyName() {
 return currentUserName + "_your_key"; 
}

3。)在微调器选择改变时设置其状态:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
@Override
 public void onItemSelected(AdapterView<?> parentView, View view, int position, long itemId) { 
setPersistedItem(position);
 } @Override
 public void onNothingSelected(AdapterView<?> arg0) {
 // TODO Auto-generated method stub
 } });