【发布时间】:2016-10-17 16:56:31
【问题描述】:
我在共享首选项中获取保存的值,但无法根据共享首选项中的值更新 TextView 或 ImageView。
这是我的共享首选项类代码:
public class SharedPref {
public SharedPref(Context context){
}
public void saveString(Context context,String key, String value) {
SharedPreferences sharedPref = context.getSharedPreferences(key,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString(key, value);
editor.apply();
}
public String getString(Context context,String key){
SharedPreferences sharedPref = context.getSharedPreferences(key, Context.MODE_PRIVATE);
String value = sharedPref.getString(key, "");
return value;
}
}
这是保存和检索偏好值的代码:
@Override
public void onNumberOfOversClick(String _overs) {
final SharedPref sharedPref = new SharedPref(MainActivity.this);
String local = sharedPref.getString(MainActivity.this,"overs");
// custom dialog
final Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.custom_overs_dialog);
dialog.setTitle("Choose Overs...");
TextView text_3 = (TextView) dialog.findViewById(R.id.text_3);
TextView text_5 = (TextView) dialog.findViewById(R.id.text_5);
final ImageView icon_tick_3 = (ImageView) dialog.findViewById(R.id.icon_tick_3);
final ImageView icon_tick_5 = (ImageView) dialog.findViewById(R.id.icon_tick_5);
if(local == "3" || local == "")
{
icon_tick_3.setImageResource(R.drawable.tick);
}
else if(local == "5")
{
icon_tick_5.setImageResource(R.drawable.tick);
}
dialog.show();
text_3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
icon_tick_3.setVisibility(View.VISIBLE);
icon_tick_3.setImageResource(R.drawable.tick);
icon_tick_5.setVisibility(View.INVISIBLE);
sharedPref.saveString(MainActivity.this, "overs", "3");
}
});
text_5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
icon_tick_3.setVisibility(View.INVISIBLE);
icon_tick_5.setVisibility(View.VISIBLE);
icon_tick_5.setImageResource(R.drawable.tick);
sharedPref.saveString(MainActivity.this, "overs", "5");
}
});
}
如您所见,我可以在本地字符串变量中检索值,但是当我重新打开应用程序时,ImageView 未更新为 R.drawable.tick。
【问题讨论】:
-
@Selvin 是的,我是编程新手。无论如何感谢您的帮助。
标签: java android string-comparison android-dialog android-sharedpreferences