之前有没有人遇到过这样的问题?微调器的新值与旧的值重叠,而不是替换它。
这在应用程序启动时发生。此外,我发现它发生在我的平板电脑上,但不在我的手机上。
相关代码:
spinnerSearchField.setSelection(sharedPref.getInt(
getString(R.string.lastChosenSpinnerValue), 0), false);
spinnerSearchField.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.lastChosenSpinnerValue),
spinnerSearchField.getSelectedItemPosition());
editor.apply();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// do nothing
}
});
我的布局文件:
<LinearLayout
android:id="@+id/mainLayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
>
<TextView
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="@string/textViewSearchField"
/>
<Spinner
android:id="@+id/spinnerSearchField"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:layout_marginBottom="30dp"
android:entries="@array/arraySearchFields"
/>
...
</LinearLayout>
</ScrollView>