2012-01-22 12 views
1

Androidに文字列値を保存し、アプリケーションが起動するたびにこの文字列にアクセスします。Androidで値を保存して取得する

たとえば、String値は自分で作成したユーザーの名前を持ちます。そして、アプリを再起動した後、彼はすでにこの名前をトップに置いていました。クッキーや何かのように。どのようにアンドロイドメモリにそのようなファイルを保存するには?

誰かが私を案内できますか?

私が使用:

public class Login extends Activity 
{ 
String user = null; 

public String saveUserOnAndroid() 
{ 
    SharedPreferences myPrefs = getApplicationContext().getSharedPreferences("myPrefs", 0); 

    String savedUser = myPrefs.getString("user", null); 

    if(savedUser == null) 
    { 
     user = UUID.randomUUID().toString(); 
     String hashedUser = md5(user); 
     SharedPreferences.Editor myPrefsEditor = myPrefs.edit(); 

     myPrefsEditor.putString("user", hashedUser); 
     myPrefsEditor.commit(); 

     return hashedUser; 
    } 
    else 
     return savedUser; 
} 
をし、うまく動作しないようです。

+0

このような質問を投稿する前に、まだ質問されていないことを確認してください。 – JoxTraex

+0

あなたはあなたが望むものをより具体的にする必要があります。あなたはうまく働いていないのですか?より多くの情報が必要です – JoxTraex

+0

投票はありがとうございました – karas

答えて

1

さて、あなたはクラスからsaveUserOnAndroid()メソッドを呼び出している言及しませんでした。この場合:

public String saveUserOnAndroid(Context c) { 
    SharedPreferences myPrefs = c.getSharedPreferences("myPrefs", 0); 
    String savedUser = myPrefs.getString("user", null); 

    if(savedUser == null) { 
    user = UUID.randomUUID().toString(); 
    String hashedUser = md5(user); 
    SharedPreferences.Editor myPrefsEditor = myPrefs.edit(); 

    myPrefsEditor.putString("user", hashedUser); 
    myPrefsEditor.commit(); 

    return hashedUser; 
    } else { 
    return savedUser; 
    } 
} 

そして、このメソッドを呼び出すときに、それを必要とContextを供給することを忘れないでください、あなたは大丈夫でなければなりません。

+0

はい、確かにそれをしました。私はonCreate()メソッドを持っていないcuz私は別のクラスからこのメソッドsaveUserOnAndroid()を呼び出す、それは原因になることができますか? – karas

+0

@karas私の更新答えを見てください。 –

+0

これは理想的に違いはありません。アクティビティはコンテキストを拡張します。どのような理由でそれらの方法があり、文脈に関係するすべてがあります。 – JoxTraex

0

いくつかのオプション、described hereがあります。 SharedPreferencesを使用することをおすすめします。あなたはそれをしなければならない

+0

OP **は既に 'SharedPreferences'を使っていますか? –

+0

私はSharedPreferencesを使用しますが、保存された情報を取得することはできません。 – karas

0

public static final String mypref="mypref"; 
public static String Username=""; 

@Override 
public void OnCreate(Bundle ic){ 
super.OnCreate(ic); 
setContentView(R.layout.main); 
SharedPreference sh = getSharedPreference(mypref, 0); 
Username = sh.getString("User", Username); 
} 

public void onPause(){ 
super.onPause(); 
SharedPreference sh = getSharedPreference(mypref, 0); 
SharedPreference.Editor editor = sh.edit(); 
editor.putString("User", Username); 
} 
+0

このソリューションを試してみようonPauseはAPIを閉じた後に呼び出されますか? – karas

+0

はいこのリンクにアクセスしてください:http://cse.spsu.edu/jpreston/CGDD4203/images/application_lifecycle_android.jpg – aha16

関連する問題