-2

共有設定で保存された値を取得していますが、共有設定の値に基づいてTextViewまたはImageViewを更新できません。ここで共有優先設定値がアプリケーションに反映されない

は共用県のクラスのために私のコードです:あなたが見ることができるように私は値を取得することができる午前

@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"); 
     } 
    }); 
} 

:ここ

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; 
} 
} 

は&が好みの値を取得し、保存するためのコードです文字列変数localですが、アプリケーションを再オープンすると、ImageViewはR.drawable.tickに更新されません。

+0

、私はプログラミングに新しいです。とにかく助けてくれてありがとう。 –

答えて

0

あなたが今働いている方法を比較します。あなたがいない==equals()メソッドを使用する必要があり、文字列の比較のために、この

if(local.equals("3") || local.equals("")) 
{ 
    icon_tick_3.setImageResource(R.drawable.tick); 
} 
0

に声明を等しく変更する必要があります。

だからあなたのコードはにアップデート:いや@Selvin

if (local.equals("3") || TextUtils.isEmpty(local)) { ... 
関連する問題