2011-01-06 12 views
0

私は自分のSharedPreferencesにクレデンシャルを保存するログインアクティビティを持っています。私は、彼らを読み取るための2つのゲッターを追加別のアクティビティのプリファレンスにアクセスする

public String getUsername() { 
    return getPreferences(MODE_PRIVATE).getString("#username", null); 
} 

のようなものが、私はこの

String mUser = (new Login()).getUsername(); 

のようにそれを呼び出すときに、これはNPEをスローすることは、活動は、単純なコンストラクタ呼び出しの後にその設定を読み取ることができないようですまるでそれが未完成の状態にあるかのように。私は多くの関連トピックを読んだが、解決策を見つけることができなかった。基本的に、私はこれらの資格情報を私のアプリケーションのアクティビティに共有する必要があります

答えて

4

これはアクティビティの作成方法ではありません。 new Login()を呼び出すと、共有環境設定にアクセスするための正しいコンテキストがありません。あなたはまた、ActivityまたはServiceを拡張するクラスでnewに電話してはいけません。それはアンドロイドクラスの仕組みではありません。

アクティビティへの参照を取得する方法が必要です。

しかし、デザインが正しくないように聞こえます。別のアクティビティの設定を取得する必要はありません。その場合は、代わりにdefaultSharedPreferncesに入れてください。

+0

あなたの提案に感謝します。でも、私はdefaultSharedPreferencesが何であるか知りません。あなたはあなたの投稿を編集して自分自身をより良く説明できますか?私はAndroid開発の初心者で、正式なtut州だけを知っている – Raffaele

+0

http://marakana.com/forums/android/examples/63.html – Falmarri

+0

ありがとう、Falmarri – Raffaele

関連する問題