2012-04-07 4 views
0

Я хочу передать некоторые данные из edittextpreference в мою трансляцию, получающую 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", ""); 

EDIT: ничего особенного об этом классе, за исключением того, вы не должны строить его непосредственно (как в new SharedPreferences()). Вы получаете экземпляры SharedPreferences от PreferenceManager, как показано выше.

EDIT2: дополнительные объекты хранятся в объекте 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 becuase это обыкновение позвольте мне импортировать SharedPreference и дает ошибку, например, создать класс SharedPreference ... там нет какой-либо опции для импорта класса SharePreference ... – kashifmehmood

+0

oh мой плохой был sharedpreferences, а не sharedprefernce ... – kashifmehmood

+0

Еще одна вещь, как я могу передать дополнительные функции намерения радиовещательный приемник – kashifmehmood

Смежные вопросы