以字符串而不是整数显示微调器的值?

时间:2014-05-23 23:20:59

标签: android sharedpreferences android-spinner

我想在string而不是integer中显示微调器的值。现在它显示的是整数,如' 0',' 1'。

设置活动:

public class Setting extends Activity {
     bloodtype = (Spinner) findViewById(R.id.spinner2);
     ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.blood_groups_arrays));
     adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     bloodtype.setAdapter(adapter2);
     bloodtype.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

         /**
          * Called when a new item is selected (in the Spinner)
          */
         public void onItemSelected(AdapterView<?> parent,
             View view, int position, long id) {
                 sharedpreferences.edit().putString(BloodType, parent.getItemAtPosition(position).toString()).commit();
             }

             public void onNothingSelected(AdapterView<?> parent) {
             // Do nothing.
             }
     });

    if(sharedpreferences.contains(BloodType)) {
        bloodtype.setSelection(sharedpreferences.getString(BloodType, "DEFAULT"));
    }
}

主要活动中调用其值:

if(sharedpreferences.contains(Setting.BloodType)) {                 
    show.setText(""+sharedpreferences.getString(Setting.BloodType, "DEFAULT"));
}

2 个答案:

答案 0 :(得分:1)

为了存储您在spinner中填充SharedPreferences的数组值,请使用onItemSelected()方法中的以下行:

sharedpreferences.edit().putString(BloodType, parent.getItemAtPosition(position).toString()).commit();

注意BloodType必须属于String类型,因为它在key key-value对中扮演SharedPreferences的角色1}}。

答案 1 :(得分:0)

从我的工作项目中获取它应该有效:

adapterSpinner = new ArrayAdapter<String>(yourContenxt,
                android.R.layout.simple_list_item_1, yourDataSource);
        spinnerProfileType.setAdapter(adapterSpinner);

当您使用字符串数组时,您也可以使用:

在xml中设置微调器项
  

android:entries =“@ array / your_string_entry”