我是安卓编码,我希望这是一个简单的问题。我有一个具有人口统计信息页面的应用程序,有各种微调器(尽管我在此示例中仅使用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();
}
当他们改变微调器时,我并不担心捕获值,只是在最后。我知道这可能是我想念的简单事情,但是如果有人能提供帮助我会非常感激
答案 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);
这将“动画”选择,即将其滚动到所选位置。