如何解决如何使用Android StudioJava将不同的微调菜单项的EditText值保存到不同的SharedPreferences中
我有4个Spinner菜单项,每个项包含2个EditText值,这2个值对于4个不同的Spinner项目是不同的,以及将这2个值保存为SharedPreferences中的4个不同Spinner项目,例如4items X 2Values = 8.但是,当我用不同的EditText值更改2nd Spinner Menu项时,相同的值显示EditText值的1st Spinner Menu项。我给了EditTexts SharedPreferences不同的菜单项键,代码是:
@Override
public void onItemSelected(AdapterView<?> adapterView,View view,int i,long l) {
final String spin1 = String.valueOf(spinner1.getSelectedItem());
TextInputLayout et1= findViewById(R.id.et1);
TextInputLayout et2= findViewById(R.id.et2);
if (spin1.contentEquals("Item1")) {
final SharedPreferences prefs1 = PreferenceManager.getDefaultSharedPreferences(this);
et1.setText(prefs1.getString("item1Key1","100"));
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s,int start,int before,int count){
}
@Override
public void beforeTextChanged(CharSequence s,int count,int after){
}
@Override
public void afterTextChanged(Editable s){
prefs1.edit().putString("item1Key1",s.toString()).commit();
}
});
final SharedPreferences prefs2 = PreferenceManager.getDefaultSharedPreferences(this);
et2.setText(prefs2.getString("item1Key2","100"));
et2.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s,int after){
}
@Override
public void afterTextChanged(Editable s){
prefs2.edit().putString("item1Key2",s.toString()).commit();
}
});
}
if (spin1.contentEquals("Item2")) {
final SharedPreferences prefs3 = PreferenceManager.getDefaultSharedPreferences(this);
et1.setText(prefs3.getString("item2Key1","200"));
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s,int count){
}
@Override
public void beforeTextChanged(CharSequence s,int after){
}
@Override
public void afterTextChanged(Editable s){
prefs3.edit().putString("item2Key1",s.toString()).commit();
}
});
final SharedPreferences prefs4 = PreferenceManager.getDefaultSharedPreferences(this);
et2.setText(prefs4.getString("item2Key2","200"));
et2.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s,int after){
}
@Override
public void afterTextChanged(Editable s){
prefs4.edit().putString("item2Key2",s.toString()).commit();
}
});
}
if (spin1.contentEquals("Item3")) {
final SharedPreferences prefs5 = PreferenceManager.getDefaultSharedPreferences(this);
et1.setText(prefs5.getString("item3Key1","400"));
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s,int after){
}
@Override
public void afterTextChanged(Editable s){
prefs5.edit().putString("item3Key1",s.toString()).commit();
}
});
final SharedPreferences prefs6 = PreferenceManager.getDefaultSharedPreferences(this);
et2.setText(prefs6.getString("item3Key2","400"));
et2.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s,int after){
}
@Override
public void afterTextChanged(Editable s){
prefs6.edit().putString("item3Key2",s.toString()).commit();
}
});
}
if (spin1.contentEquals("Item4")) {
final SharedPreferences prefs7 = PreferenceManager.getDefaultSharedPreferences(this);
et1.setText(prefs7.getString("item4Key1","800"));
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s,int after){
}
@Override
public void afterTextChanged(Editable s){
prefs7.edit().putString("item4Key1",s.toString()).commit();
}
});
final SharedPreferences prefs8 = PreferenceManager.getDefaultSharedPreferences(this);
et2.setText(prefs8.getString("item4Key2","800"));
et2.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s,int after){
}
@Override
public void afterTextChanged(Editable s){
prefs8.edit().putString("item4Key2",s.toString()).commit();
}
});
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
但是当使用上面的代码时,我要更改Edittext值而不是为每个菜单项保存的所有菜单项的SharedPreference键都相同。 在此帮助我,在此先谢谢您。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)