2016-05-01 6 views
-1
confbutton.setOnClickListener(
    new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    // get the ip address 
    String ipAddress = editTextIPAddress.getText().toString().trim(); 
    // get the port number 
    String portNumber = editTextPortNumber.getText().toString().trim(); 
    // save the IP address and port for the next time the app is used 
    editor.putString(PREF_IP, ipAddress); // set the ip address value to save 
    editor.putString(PREF_PORT, portNumber); // set the port number to save 
    editor.commit(); // save the IP and PORT 

    // get the IP address and port number from the last time the user used the app, 
    // put an empty string "" is this is the first time. 
    editTextIPAddress.setText(sharedPreferences.getString(PREF_IP, "")); 
    editTextPortNumber.setText(sharedPreferences.getString(PREF_PORT, "")); 

    onBackPressed();} 
}); 

これを設定アクティビティで書き込み、IPアドレスとポート番号を取得しました。そして、私はこれを使用して、メインの活動でSharedPreferencesと呼ば:sharedPreferencesのアップデートを別のアクティビティで取得する

sharedPreferences = getSharedPreferences("HTTP_HELPER_PREFS", Context.MODE_PRIVATE); 
ipAddress = sharedPreferences.getString(PREF_IP, ipAddress); 
portNumber = sharedPreferences.getString(PREF_PORT, portNumber); 
displayText.setText(ipAddress); 

私はそれを得たかどうかを確認するためにdisplayText.setText(ipAddress)を使用しました。それは働いたが、それは私が最後のSharedPreferencesを与えるだけ私は設定のアクティビティを変更し、私はアプリを殺すまで再び変更しない主な活動に戻って、再び開く。

は、私はこれを実行しようとしました:

SettingsButton.setOnClickListener(
    new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    Intent intent2 = new Intent("com.example.ela_hidri.myremote.SettingsActivity"); 
    startActivity(intent2); 
    sharedPreferences = getSharedPreferences("HTTP_HELPER_PREFS", Context.MODE_PRIVATE); 
    ipAddress = sharedPreferences.getString(PREF_IP, ipAddress); 
    portNumber = sharedPreferences.getString(PREF_PORT, portNumber); 
    displayText.setText(ipAddress); 
}}); 

これは、テキストを変更しないが、私はボタンSettingsをクリックした場合にのみ。

設定アクティビティで変更するたびに変更したいと考えています。

+0

[別のアクティビティからSharedPreferencesをどのように読み取ることができますか?](http://stackoverflow.com/questions/36959200/how-can-i-read-a-sharedpreferences-from-another-activity) –

+0

あなたの前の質問で私があなたに言ったように、 'あなたはあなたのアプリケーション内のどこからでもあなたのSharedPreferencesにアクセスできます。 –

+0

はい私はそれをしました..しかし、私はそれが変更されませんipアドレスを更新するとき –

答えて

1

メインアクティビティのonResume機能を使用する必要があります。設定アクティビティからIPアドレスとポートを変更すると、SharedPreferencesに保存されます - そうですか?

MainActivityに戻ると、onResumeの内部に次のコードを入力する必要があります。MainActivity

@Override 
protected void onResume() { 
    super.onResume(); 

    // Get the Sharedpreferences here 
    sharedPreferences = getSharedPreferences("HTTP_HELPER_PREFS", Context.MODE_PRIVATE); 
    ipAddress = sharedPreferences.getString(PREF_IP, ipAddress); 
    portNumber = sharedPreferences.getString(PREF_PORT, portNumber); 
    displayText.setText(ipAddress); 
} 

これはあなたのためのトリックを願っています。

+1

haを参照してください。上記のコメントは5秒で私にそれを打つ! :) –

+0

haha​​ ...私は編集して、その時の質問に答えていた。問題は混乱でした。 :P –

+0

thnx it workes :))) –

関連する問題