我想从2个edittexts(et1,et2
)中保存文本,并从3个微调器(spinnerm,spinner和spinner2)中选择onPause并将它们设置回onResume。
来自edittexts的文本已正确保存,只有微调器选择不能按预期工作。
我的代码:
public void onResume(){
super.onResume();
Log.d("REZUM","notr smo");
SharedPreferences seti = getSharedPreferences( "pavzica", MODE_PRIVATE);
spinnerm.setSelection(seti.getInt("m", 0));
spinner.setSelection(seti.getInt("k", 0));
spinner2.setSelection(seti.getInt("p", 0));
et1.setText(seti.getString("zade", ""));
et2.setText(seti.getString("Vseb", ""));
}
public void onPause() {
shraniPolja();
super.onPause();
}
public void shraniPolja() {
SharedPreferences seti = getSharedPreferences( "pavzica", MODE_PRIVATE);
SharedPreferences.Editor edito = seti.edit();
edito.putString("zade", et1.getText().toString());
edito.putString("Vseb", et2.getText().toString());
edito.putInt("m", spinnerm.getSelectedItemPosition());
edito.putInt("k", spinner.getSelectedItemPosition());
edito.putInt("p", spinner2.getSelectedItemPosition());
edito.putBoolean("b", true);
edito.commit();
}
我做错了什么?
答案 0 :(得分:1)
调用setSelection / setText后需要使视图无效。
您可以使用mYourView.invalidate()使整个视图无效;或者您可以使视图的一部分或特定的drawable无效。 See the View class documentation
如果希望微调器动画在微调器获得恢复时的值时运行,请使用具有第二个布尔参数的setSelection形式并传入true。