1

Где мне позвонить? Я хочу, чтобы это появилось, когда нажми на checkboxpreferenced. редактировать MainActivity.javaГде вызывается мое уведомление?

import...//here all imports i need 

public class MainActivity extends Activity { 
CheckBoxPreference firtsDependent; 
... 
public void onCreate(Bundle savedInstanceState){ 
    super onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    //and your code 
} 
} 
    private void sendSimpleNotification(){ 

     boolean pref_opt1= PreferenceManager.getDefaultSharedPreferences(MainActivity.this).getBoolean("firstDependent", false); 

     if(pref_opt1) { 
      NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(service.this); 
      notificationBuilder.setContentTitle("Title"); 
      notificationBuilder.setContentText("Context"); 
      notificationBuilder.setTicker("TickerText"); 
      notificationBuilder.setWhen(System.currentTimeMillis()); 
      notificationBuilder.setSmallIcon(R.drawable.ic_stat_icon); 

      Intent notificationIntent = new Intent(this, service.class); 
      PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 

      notificationBuilder.setContentIntent(contentIntent); 
      notificationBuilder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE); 
      mNotificationManager.notify(1, notificationBuilder.build()); 
     } 
     else{ 
      mNotificationManager.cancel(SIMPLE_NOTIFICATION_ID);  
     } 

    } 

settings.java

import..//all imports i need 
public class settings extends PreferenceActivity{ 
public void onCreate(Bundle savedInstanceState){ 
    super onCreate(savedInstanceState); 
    setContentView(R.xml.settings); 
    } 
} 

это структура моего code..and конечно у меня есть XML, где внутри есть checkboxpreferences с идентификатором и ключом firstDependent.

конец редактирование. Я пробовал в onResume и работает только в том случае, если я выхожу из экрана настроек. Как я могу делать то, что хочу?

ответ

0

Вам нужен флажок слушатель, как этот:

cb = (CheckBox)findViewById(R.id.checkBox); 
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { 
     sendSimpleNotification(); 
    } 
} 

Для CheckBox предпочтений использовать:

final CheckBoxPreference cbPR= (CheckBoxPreference) getPreferenceManager().findPreference("cbPref"); 

cbPR.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {    
    public boolean onPreferenceChange(Preference preference, Object newValue) { 

     sendSimpleNotification(); 
     return true; 
    } 
}); 
+0

так в моем случае, как я могу это сделать? это почти 3 месяца, что я ищу ответ на эту проблему. Не могли ли вы помочь мне, пожалуйста? мне вставить весь код 'sendSimpleNotification' в' onCheckedChanged'? –

+0

Ну, поместите код, который я вставил в метод 'onCreate()' (это приведет к установке слушателя в начале. Когда этот флажок будет нажат, будет выполнен код внутри 'onCheckedChanged'. Вы можете его разработать с помощью некоторых ., если заявления, если вы хотите, чтобы удовлетворить вас лучше – g00dy

+0

вы имеете в виду что-то вроде: 'куб = (CheckBox) findViewById (R.id.checkBox); cb.setOnCheckedChangeListener (новый CompoundButton.OnCheckedChangeListener() { @Override общественности аннулированию onCheckedChanged (CompoundButton buttonView, логическое IsChecked) { sendSimpleNotification();} } 'В OnCreate я не знаю, если я имею право понимать –

0

в вашем PreferenceActivity OnCreate, зарегистрировать изменения предпочтений слушатель:

getSharedPreferences("YourPrefereceFile", 0).registerOnSharedPreferenceChangeListener(this); 

, тогда ваша деятельность реализует OnSharedPreferenceChangeListener.

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, 
     String key) { 
    //Test on the key to know what preference has changed and do what ever you want 

} 

вас код изменен:

import..//all imports i need 
public class settings extends PreferenceActivity implements OnSharedPreferenceChangeListener{ 
    public void onCreate(Bundle savedInstanceState){ 
     super onCreate(savedInstanceState); 
     setContentView(R.xml.settings); 
     PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this); 
     } 
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, 
       String key) { 
     // test on your wanted key preference 
     // Call your notification methode 

    }  
    } 
+0

это для checkboxpreference? –

+0

это действительно для всех ваших предпочтений, и оно должно работать для вашего checkboxpreference, так как оно хранит логическое значение в SharedPreferences – user1897934

+0

. Можете ли вы показать мне мой код, пожалуйста? Извините, но я ничего не могу понять прямо сейчас. Надеюсь, вы поможете мне –

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