2017-09-13 9 views
-2

私はリストスタイルのアプリを簡単に作成しようとしています。私は正常にSharedPreferencesを使用して文字列を保存しました。ログで参照できるようになりましたが、文字列がアプリケーションが再オープンされるたびにクリアされるのではなく、テキストフィールドに接続されたままにしておきたいユーザによって削除される)。他の提案は高く評価されます。最初の回答で参照としてクリアすることなくテキストフィールドレスポンスを保存する方法

(MainActivity)

public void go(View view) { 

    Intent intent1 = new Intent(SecondActivity.this, myPreferences.class); 

    String passGoal1 = goal1.getText().toString(); 

    intent1.putExtra("goal1", passGoal1); 

    startActivity(intent1); 
} 

も実装myPreferencesクラス。共有設定で

public class myPreferences { 

    private SharedPreferences pref; 

    private SharedPreferences.Editor editor; 

    private Context context; 

    int PRIVATE_MODE = 0; 

    private static final String PREF_NAME = "MyPreferencesName"; 

    public final static String KEY_NAME = "key_value"; 

    public myPreferences(Context context) { 

     this.context = context; 

     pref = context.getSharedPreferences(PREF_NAME,PRIVATE_MODE); 

     editor = pref.edit(); 
    } 

    public void setFunction(String data) { 

     editor.putString(KEY_NAME, data); 
    } 
} 

答えて

1

格納されたデータをフェッチし、それをテキストフィールド

public class MyPreferences { 

private SharedPreferences pref; 

// Editor for Shared preferences 
private SharedPreferences.Editor editor; 

// Context 
private Context context; 

// Shared pref mode 
int PRIVATE_MODE = 0; 

// Sharedpref file name 
private static final String PREF_NAME = "MyPreferencesName"; 

public final static String KEY_NAME = "key_value"; 

public MyPreferences(Context context) { 
    this.context = context; 
    pref = context.getSharedPreferences(PREF_NAME, PRIVATE_MODE); 
    editor = pref.edit(); 
} 

public void setFunction(String data) { 
    editor.putString(KEY_NAME, data); 
    editor.commit(); 
} 

public String getFunction() { 
    return pref.getString(KEY_NAME, ""); 
} 
} 

そして、あなたの活動の中のすべての時間を表示get関数はSharedPreferencesを初期化し、次の操作を行います

private MyPreferences myPreferences; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    myPreferences = new MyPreferences(this); 

    //To set EditText data from SavedPreferences 
    textField.setText(myPreferences.getFunction()); 
} 

//To save the latest data from EditText. 
@Override 
protected void onStop() { 
    Log.d("LifeCycle", "onStop: "); 
    super.onStop(); 
    myPreferences.setFunction(editText.getText().toString()); 
} 
+0

ありがとう、私はAppSettingsPreferenceクラス、任意の提案を設定しようとするとエラーが表示されますか? –

+0

私はあなたを助けてくれることを嬉しく思っています。私は自分の答えを編集しました。もう一度やり直してください。 @イアンF. –

+0

ありがとうございます。最後の1つの質問は申し訳ありませんが、テキストフィールドのデータをこの新しいクラスにどのように渡すことができますか?私はちょうど新しい意図を使ってそれを前後に渡すだろうか? –

関連する問題