2012-04-07 76 views
0

我想從edittextpreference傳遞一些數據給我的broadcastreciever接收SMS ....我怎麼能這樣做......下面的代碼代表我一直在做的事情,但是沒有工程....將數據從活動傳遞給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); 

不工作...我如何能執行...

簡單我想從文本編輯textpreference已被用戶輸入,然後我想要在BoradCast接收器中的文本匹配傳入郵件中的某些單詞...

回答

0

如果數據位是首選項,則必須將其置於從Preferences對象的接收器:

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

//... 

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

編輯:沒有什麼特別的那個類,除非你不應該直接構造它(如new SharedPreferences())。如上所述,您從PreferenceManager獲得SharedPreferences的實例。

EDIT2:extras作爲名稱 - 值集合存儲在Intent對象中。當你創建一個意圖調用接收器,您存儲演員是這樣的:

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 

在接收端:

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

事情是我甚至不能做的SharedPreference監守它不會讓我導入SharedPreference類,並給出了一個錯誤,如創建類SharedPreference ...沒有任何選項用於導入SharePreference類... – kashifmehmood 2012-04-07 14:08:09

+0

哦,我的壞它是sharedpreferences不sharedprefernce ... – kashifmehmood 2012-04-07 14:36:09

+0

一個更多的事情我怎麼傳遞額外的意圖到廣播接收機 – kashifmehmood 2012-04-07 14:37:03

相關問題