我想将一些来自edittextpreference的数据传递给我正在接收短信的广播记录....我怎么能这样做......下面的代码代表了我一直在做的但不起作用...... / p>
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);
不起作用......我怎么能表现出来......
简单我想从用户输入的edittextpreference中获取文本,然后我想获取BoradCast接收器中的文本以匹配传入消息中的某些单词....
答案 0 :(得分: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()
中)。如上所述,您可以从SharedPreferences
获得PreferenceManager
的实例。
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