2012-04-07 10 views
0

edittextpreferenceのデータをSMS受信中の私のbroadcastrecieverに渡したいのですがどうすればいいのですか?次のコードは何をしていますか?作品は....アクティビティからBROADCAST受信者にデータを渡す

public class AppPreferences extends PreferenceActivity{ 

    SharedPreferences prefs; 
    @Override 
    public void onCreate(Bundle b) 
    { 
     super.onCreate(b); 
     addPreferencesFromResource(R.xml.prefs); 

     prefs= PreferenceManager.getDefaultSharedPreferences(this); 

     Log.v("", prefs.getString("Spam", null)); 
     Bundle ba = new Bundle(); 
     ba.putString("spam",prefs.getString("Spam",null)); 
    } 

} 

作品はありません

   spam=bundle.getString("spam"); 
Log.v("Bundle", spam); 

としてそれを取得中には...どのように私は

iがからテキストを取得したいシンプルな...という実行することができていません編集あなたが入力したtextpreferenceを受信して​​から、BoradCast Receiverのテキストを受信メッセージの特定の単語と一致させたいと思っています....

答えて

0

データビットが環境設定の場合は、

import android.content.SharedPreferences; 
import android.preference.PreferenceManager; 

//... 

public void onReceive(Context Ctxt, Intent in) 
{ 
    //... 
    SharedPreferences Prefs = PreferenceManager.getDefaultSharedPreferences(Ctxt); 
    spam = Prefs.getString("spam", ""); 

EDIT:あなたは(new SharedPreferences()のように)それを直接構築するべきではないことを除いてクラスについて何も特別な、Preferencesオブジェクトから受信機。上記のように、PreferenceManagerからSharedPreferencesのインスタンスが得られます。

EDIT2:エクストラは名前と値のコレクションとしてインテントオブジェクトに格納されます。あなたが受信機を起動する意図を作成するときは、次のようにエキストラを格納します。

public void onReceive(Context Ctxt, Intent in) 
{ 
    String Foo = in.getStringExtra("foo"); 
    int Bar = in.getStringExtra("bar"); 
    //and so forth 
+0

事は、それは文句を言わない私にインポートしましょうbecuase私もSharedPreferenceを行うカントです:受信側の

Intent in = new Intent(Ctxt, MyBroadcastReceiver.class); in.putExtra("foo", "Hello world"); //that's a string extra in.putExtra("bar", 17); //that's an integer extra 

SharedPreferenceクラスを作成して、クラスSharedPreferenceを作成するようなエラーを出します... SharePreferenceクラスをインポートするためのオプションはありません... – kashifmehmood

+0

ああ、私はそれがsharedpreferではないsharedpreferences ... – kashifmehmood

+0

もう一つの方法は、放送受信機 – kashifmehmood

関連する問題