Android微调器默认值问题

时间:2011-09-21 10:20:22

标签: android

在我的应用程序中我正在使用Spinner,其中包含1到60个项目,用户必须从中选择其中任何一个。我的问题是当用户再次调用包含微调器的Activity时,用户可以看到他之前选择的项目为微调器的默认值。 我试着使用spineer.setselection(),但我无法得到。 所以,如果有人对此有任何理想,那么请给出一些提示来解决我的问题。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ViewGroup viewgroup = (ViewGroup) findViewById(R.id.myprofilelinear);
    ViewGroup.inflate(this, R.layout.spinner,
            viewgroup);

    LoadUI();
}
public void LoadUI()
{
    imgtoggle = (ImageView) findViewById(R.id.btntoggle);
    imgtoggle.setOnClickListener(this);
    String param=JsonDataProcessor.MYPROFILELIST.get(0).getIsTracking();
    if(param.equalsIgnoreCase("True"))
    {
        imgtoggle.setImageResource(R.drawable.on_button);
    }
    else
    {
        imgtoggle.setImageResource(R.drawable.off_button);
    }

    btnsave = (Button)findViewById(R.id.btnSavechanges);
    btnsave.setOnClickListener(this);

    String[] s = new String[60];
    int i;
    for (i = 0; i < 60; i++) {
        s[i] = Integer.toString(i+1);
    }

     spin = (Spinner) findViewById(R.id.TimeSpinner);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(TimeSpin.this,
            android.R.layout.simple_spinner_item, s);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spin.setAdapter(adapter);

}

2 个答案:

答案 0 :(得分:8)

使用

spin.setSelection(adapter.getPosition(previously_saved_value));

可以使用共享首选项或通过创建静态变量来获取prior_saved_value,并将其值设置为用户先前选择的值。

答案 1 :(得分:1)

您应该为此点燃OnItemselectedListener并在Spinner中设置所选值

检查此代码:

    boolean flag_default_country=false;

    spin_country.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
                for (int i = 0; i < s.length; i++) {
                    if (flag_default_country == false) {
                        if (s[i].toString().equalsIgnoreCase("US")) {
                            spin_country.setSelection(i);
                            flag_default_country = true;
                        }
                    }
                }
            }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
        }
    });

spin_country是Spinner Object

首先将flag_default_country初始化为false,然后检查User选择的存储在Some值中的String值。如果第i个位置的Array值等于用户选择的值,它将在Spinner中设置i的值。

要保存用户选择的值,您可以使用共享首选项。

点击此链接查看Shared Preference

如果您发现任何困难,请告诉我。