2016-06-27 15 views
-1

Here is my Logcat ifブロックの内側にある文字列値を保存したいので、その外側の値にアクセスしたいと思います。今私はこのコードで試してみましたが、 "Print lnがメッセージを必要とする"と言ってエラーとアプリケーションを強制終了しています。これは放送受信機クラスであり、このコードはOnReceiveメソッドにあります。 私はこのコードを試してみました:共有設定にエラーを与える値を保存する

if (!available) 
for (String key : contactNumber.keySet()) { 
    String msgSender = contactNumber.get(key); 
    extractedContact = Utilities.extractNumbers(key); 
    preferences = context.getSharedPreferences("progress",Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putString("number", extractedContact); 
    editor.apply(); 
    } 

String showNumber = preferences.getString("number", ""); 
Toast.makeText(context, showNumber + "Hello", Toast.LENGTH_LONG).show(); 

を今私はちょうど共有県に接触値を抽出した後、私はもしブロックの外にそれを取得していますが、それは私にエラーを与えている店にしたいです。誰が問題を知っている?どのようにi)が格納された値

+0

があなたを表示logcat –

+0

ok l emme投稿を編集する –

+0

@SathishKumarJ投稿を編集してください –

答えて

1

下記の行を追加してから値を取得してください。

以下のように、

 preferences = context.getSharedPreferences("progress",Context.MODE_PRIVATE); 
    String showNumber = preferences.getString("number", ""); 
    Toast.makeText(context, showNumber + "Hello", Toast.LENGTH_LONG).show(); 
+0

これはありがとうございます。サー –

+0

コーディングをお楽しみください... – Vickyexpert

-3

コード

editor.apply(この行を置き換えを取得することができます。

editor.commitによって

()。

+0

apply()は永続的な記憶域に永続的な記憶域を書き出すcommit()とは異なり、その変更をメモリ内SharedPreferencesに直ちにコミットしますが、ディスクへの非同期コミットを開始し、すべての失敗のこのSharedPreferencesの別のエディタがapply()が未解決の間に通常のcommit()を実行すると、コミット自体と同様にすべての非同期コミットが完了するまでcommit()がブロックされます。 –

0

それは好みが初期化されていない、だから

for (String key : contactNumber.keySet()) { 
.. 
} 

のうち、intialize必要

 if (!available) 
    { 
    preferences = context.getSharedPreferences("progress",Context.MODE_PRIVATE); 

     for (String key : contactNumber.keySet()) { 
      String msgSender = contactNumber.get(key); 
      extractedContact = Utilities.extractNumbers(key); 

      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putString("number", extractedContact); 
      editor.apply(); 
      } 

     String showNumber = preferences.getString("number", ""); 
     Toast.makeText(context, showNumber + "Hello", Toast.LENGTH_LONG).show(); 

    ... 
    }// if (!available) close bracket 

おかげであることを意味..

関連する問題