2016-09-22 13 views
-2

私はEditTextの2つのalertDialogを持っています。それぞれ、sharedPreferencesに格納する値を保存する必要があります。しかし、別々に保存するのではなく、最初の入力値を2番目の入力値に置き換えるだけです。ここに私のコードです:sharedPreferencesに2つの値を別々に保存する方法は?

public void IPconfig(){ 

     // some AlertDialog Builder codes 

     sharedPreferences = getSharedPreferences("FirstText", Context.MODE_PRIVATE); 
     editor = sharedPreferences.edit(); 

     builder.setPositiveButton("Submit", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       editor.putString("FirstText", etIP.getText().toString()); 
       editor.apply(); 
      } 
     }); 

     builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       dialogInterface.dismiss(); 
      } 
     }); 

     builder.create().show(); 
    } 

    public void MonitoringIPConfig(){ 

     // some AlertDialog Builder codes 

     sharedPreferences = getSharedPreferences("SecondText", Context.MODE_PRIVATE); 
     editor = sharedPreferences.edit(); 

     builder.setPositiveButton("Submit", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       editor.putString("SecondText", etIP.getText().toString()); 
       editor.apply(); 
      } 
     }); 

     builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       dialogInterface.dismiss(); 
      } 
     }); 

     builder.create().show(); 
    } 
+0

。各メソッドは独自の 'AlertDialog.Builder'を作成する必要があります。 – Egor

答えて

0

あなたは、Androidデベロッパーページが示唆するように、実際に、SharedPreferencesに表示あなたがエディタで実行するすべての変更を持っているcommit()を呼び出す必要があります。 https://developer.android.com/reference/android/content/SharedPreferences.html

は、以下のことを試してください:あなたはおそらくあなたの問題の原因である二つの方法の間に `AlertDialog.Builder`インスタンスを再利用している

editor.putString("FirstText", etIP.getText().toString()).commit();

+0

それは問題のように見えません、OPは 'apply()'を呼び出しています –

+0

気づいた。しかし、最近私のコードは 'apply()'を持っていても動作しませんでした。私が 'commit()'に変更したところ、かなりうまくいきました。私はなぜか分からない。 – codemirel

関連する問題