获取并设置Spinner值

时间:2014-02-21 14:02:12

标签: android spinner

我是安卓编码,我希望这是一个简单的问题。我有一个具有人口统计信息页面的应用程序,有各种微调器(尽管我在此示例中仅使用1)。旋转器已经填充,但是用户可以在他们做出选择后保存它们,因此每次打开此应用程序时,之前的选择都在那里。

将值加载到微调器中的代码是

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_demographics);
    // Show the Up button in the action bar.
    setupActionBar();

    SharedPreferences prefs = getSharedPreferences("data_file", MODE_PRIVATE);
    int ageValue = prefs.getInt("Age", 0);

    Spinner spinner = (Spinner) findViewById(R.id.spinner1);

    //set the default according to value
    spinner.setSelection(ageValue);
}

然后我保存数据的代码是

public void submitDemo(View view) {
    Spinner spinner = (Spinner) findViewById(R.id.spinner1);

    int ageValue = spinner.getSelectedItemPosition();

    //save the current data from the spinner
    SharedPreferences prefs = getSharedPreferences("data_file", MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();

    editor.putInt("Age", ageValue);

    editor.commit(); 
    finish();
}

当他们改变微调器时,我并不担心捕获值,只是在最后。我知道这可能是我想念的简单事情,但是如果有人能提供帮助我会非常感激

1 个答案:

答案 0 :(得分:0)

首先,设置适配器:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), 
   android.R.layout.simple_spinner_item, 
   getResources().getStringArray(R.array.your_string_array));
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

如果setSelection(value)不起作用,请尝试使用

spinner.setSelection(ageValue, true);

这将“动画”选择,即将其滚动到所选位置。