在我的代码中,我使用了两种按特定顺序调用的方法。
1)
public void setWhoseSelected(int newWhoseSelected) {
this.whoseSelected = newWhoseSelected;
sharedEditor = sharedPreferences.edit();
sharedEditor.putInt(getString(R.string.whoseHome), newWhoseSelected);
sharedEditor.apply();
}
2)
public void setSortSelected(int newSortSelected) {
this.sortSelected = newSortSelected;
sharedEditor = sharedPreferences.edit();
sharedEditor.putInt(getString(R.string.sortHome), newSortSelected);
sharedEditor.apply();
}
但我注意到的是它设置了" R.string.whoseHome"和" R.string.sortHome"到相同的newSortSelected值。在尝试理解问题时,我试图切换他们的位置,然后他们都将newWhoseSelected保存到SP。据我所知,调用的最后一个setter将其值设置为两个字符串。由于某些限制,我无法在一种方法中设置它们然后应用()。
我也尝试为每个人创建单独的编辑器,但它没有帮助。那么这是如何工作的?如何编辑两次值而不会混淆它们呢?
我有点尴尬,所以提前谢谢你!
答案 0 :(得分:0)
这是因为在您的strings.xml
中,您为两个字符串资源设置了相同的值,例如
<string name="sortHome">xyz</string>
<string name="whoseHome">xyz</string>
所以更改它并将 UNIQUE
值提供给 UNIQUE
字符串资源。