刷新后如何使微调器显示先前选择的项目?
How to make a spinner show previously selected item after refresh?
我有一个设置 activity,我可以在其中通过微调器选择语言。例如,当我将其更改为俄语时,语言会发生变化,但是当我再次打开“设置”菜单时,微调器上的所选项目是第一项(英语)而不是当前项目(俄语)。
这是我的微调器
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);
我需要在微调器中更改什么才能显示所选语言?
为此,您需要以编程方式设置微调器值
for (int i=0 ;i<languages.length;i++)
{
if(languages[i] = "RUSSIAN")//change it according to ur prrefence
spinner.setSelection(i);
}
您必须将之前选择的值保存在应用中的某个位置。当您再次打开设置时,检查该值并在数组中找到它的位置。找到它的位置后,将 Spinner 选择设置为该位置,如下所示:
spinner.setSelection(position_of_selected_item);
如果您想设置微调器的上一个选定项目,您必须存储选定项目,然后设置您的选择:
这是一个示例,希望我得到我之前选择的项目,然后从他的数组适配器中获取项目的位置
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) {
}
});
我有一个设置 activity,我可以在其中通过微调器选择语言。例如,当我将其更改为俄语时,语言会发生变化,但是当我再次打开“设置”菜单时,微调器上的所选项目是第一项(英语)而不是当前项目(俄语)。
这是我的微调器
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);
我需要在微调器中更改什么才能显示所选语言?
为此,您需要以编程方式设置微调器值
for (int i=0 ;i<languages.length;i++)
{
if(languages[i] = "RUSSIAN")//change it according to ur prrefence
spinner.setSelection(i);
}
您必须将之前选择的值保存在应用中的某个位置。当您再次打开设置时,检查该值并在数组中找到它的位置。找到它的位置后,将 Spinner 选择设置为该位置,如下所示:
spinner.setSelection(position_of_selected_item);
如果您想设置微调器的上一个选定项目,您必须存储选定项目,然后设置您的选择: 这是一个示例,希望我得到我之前选择的项目,然后从他的数组适配器中获取项目的位置
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) {
}
});