我拥有的是“设置”活动,可以通过微调器选择语言。例如,当我将其更改为俄语时,语言会更改,但是当我再次打开“设置”菜单时,微调器上的所选项目是第一项(英语),而不是当前项(俄语)。
这是我的微调器
Resources res = getResources();
language = res.getStringArray(R.array.languages_arrays);
Spinner spinner = (Spinner) findViewById(R.id.toolbar_spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, R.layout.spinner_item_dropdown,
language);
spinner.setAdapter(adapter);
为了显示所选的语言,我需要在微调器中进行哪些更改?
如果要设置微调器的先前选择的项目,则必须存储所选的项目,然后设置选择:这是一个示例,希望我获取我先前的选择的项目,然后从他的阵列适配器中获取该项目的位置
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String language = preferences.getString("language", "");
if(!language.equalsIgnoreCase(""))
{
int spinnerPosition = arrayAdapter.getPosition(language);
spinner.setSelection(spinnerPosition);
}
您可以按以下方式存储数据:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
SharedPreferences.Editor editor = preferences.edit();
editor.putString("language",spinner.getSelectedItem().toString(););
editor.apply();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句