web-dev-qa-db-ja.com

androidでgetSharedPreferencesを使用する方法

「ログイン」アクティビティを実装する必要があるアプリケーションがあります。これらのコンポーネントがあります:

  1. EditTextユーザー名
  2. EditTextパスワード
  3. ボタンログイン
  4. ボタンキャンセル

ユーザーがログインした後、ユーザーが「ログアウト」ボタンを押すまで、ユーザーのログイン詳細をアプリケーションに記憶させる必要があります。 XMLで設定を使用していません。

GetSharedPreferences(String name、int mode)をアプリケーションで機能させるにはどうすればよいですか?

72
CMA

まず、次を使用してSharedPreferencesのインスタンスを取得します

SharedPreferences userDetails = context.getSharedPreferences("userdetails", MODE_PRIVATE);

SharedPreferencesに値を保存します

Editor edit = userDetails.edit();
edit.putString("username", username.getText().toString().trim());
edit.putString("password", password.getText().toString().trim());
edit.apply();

上記の行は、ユーザー名とパスワードを設定に書き込みます

設定から保存された値を取得するには、次のコード行に従うことができます

String userName = userDetails.getString("username", "");
String password = userDetails.getString("password", "");

(注:パスワードをアプリに保存するISは推奨されません。保存する前にパスワードを暗号化する必要がありますORはパスワードを保存しません)

138
Dharmendra
//Set Preference
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor;  
prefsEditor = myPrefs.edit();  
//strVersionName->Any value to be stored  
prefsEditor.putString("STOREDVALUE", strVersionName);  
prefsEditor.commit();

//Get Preferenece  
SharedPreferences myPrefs;    
myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);  
String StoredValue=myPrefs.getString("STOREDVALUE", "");

これを試して..

13
Karthik

多くのことを読んだ後、これだけが機能しました:クラスで共有設定を設定するには:

 SharedPreferences userDetails = getApplicationContext().getSharedPreferences("test", MODE_PRIVATE);
                    SharedPreferences.Editor edit = userDetails.edit();
                    edit.clear();
                    edit.putString("test1", "1");
                    edit.putString("test2", "2");
                    edit.commit();

AlarmRecieverで:

SharedPreferences userDetails = context.getSharedPreferences("test", Context.MODE_PRIVATE);
    String test1 = userDetails.getString("test1", "");
    String test2 = userDetails.getString("test2", "");
1
Afshin Ghazi