0

ok, je veux montrer un toast dans mon fragment en utilisant AlarmManager, mais je ne sais pas pourquoi mon pain ne montre pas, voici mon code:Voir toast fragment avec AlarmManager

Mon activité:

public class ScheduleMainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);  

     Configuration config = getResources().getConfiguration(); 

     FragmentManager fragmentManager = getFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     ScheduleMainFragment fragment = new ScheduleMainFragment(); 

     if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {  
      fragmentTransaction.replace(android.R.id.content, fragment); 
     }else{  
      fragmentTransaction.replace(android.R.id.content, fragment); 
     } 
     fragmentTransaction.commit(); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_login, menu); 
     return true; 
    } 
} 

Voici mon fragment:

public class ScheduleMainFragment extends Fragment { 

    View _fragment; 
    private PendingIntent pendingIntent; 
    private AlarmManager manager; 

    CircularProgressButton mScheduleDate; 
    CircularProgressButton mMyScheduleDates; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 


     _fragment = inflater.inflate(R.layout.schedulemain_p, container, false); 
     SetupView(_fragment); 


     return _fragment; 
    } 

    private void SetupView(View fragment) { 
     Intent alarmIntent = new Intent(getActivity().getApplicationContext(),AlarmReceiver.class); 
     pendingIntent = PendingIntent.getBroadcast(getActivity(), 0, alarmIntent, 0); 

     mScheduleDate = (CircularProgressButton) _fragment.findViewById(R.id.btScheduleDate); 
     mMyScheduleDates = (CircularProgressButton) _fragment.findViewById(R.id.btMyScheduleDates); 

     mScheduleDate.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       SetAlert((Button) view); 
      } 
     }); 
     mMyScheduleDates.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       StopAlert((Button) view); 
      } 
     }); 
    } 


    private void SetAlert(Button view) { 
     startAlarm(); 
    } 

    private void StopAlert(Button view) { 
    } 


    public void startAlarm() { 
     manager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE); 
     int interval = 10000; 

     manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent); 
     Toast.makeText(getActivity(), "Alarm Set", Toast.LENGTH_SHORT).show(); 
    } 

mon A larmReceiver

public class AlarmReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     Toast.makeText(context, "Alarma activada", Toast.LENGTH_SHORT);//When i debug this toast does not show in my fragment, i dont know what to do here. 
    } 
} 

ici mon AlarmReceiver recevoir mon alerte, mais ne montre pas de pain grillé dans mon fragment, quelqu'un peut me aider, je suis nouveau dans Android.

Répondre

2

Vous n'avez pas appelé la méthode show().

Il devrait être:

Toast.makeText(context, "Alarma activada", Toast.LENGTH_SHORT).show(); 
+0

-.- ", je ne peux pas le croire Merci. –

1

Vous venez de manquer l'appel à show() sur votre toast.

public class AlarmReceiver extends BroadcastReceiver { 

@Override 
    public void onReceive(Context context, Intent intent) { 
     Toast.makeText(context, "Alarma activada", Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

Eh oui, je rate le .show() à la fin, merci. –

2

Essayez ce,

La syntaxe de base pour montrer des toasts:

Toast.makeText(context, text, duration); 

contexte

getApplicationContext() - Retourne le contexte pour toutes les activités en cours d'exécution dans l'application.

getBaseContext() - Si vous souhaitez accéder au contexte à partir d'un autre contexte dans l'application, vous pouvez accéder. GetContext() - Retourne l'affichage de l'activité en cours uniquement dans la vue contextuelle.

texte

texte - Retour "STRING", sinon chaîne que vous pouvez utiliser transtypage. (string) // num de type caste

durée

Toast.LENGTH_SHORT - retard Toast 2000 ms prédéfinies

Toast.LENGTH_LONG - retard de Toast 3500 ms prédéfinies

Type de Toast

int LENGTH_LONG Afficher la notification ou la notification textuelle pour une longue période de temps. int LENGTH_SHORT Afficher la notification ou la notification textuelle pour une courte période de .

par exemple:

Toast.makeText(MainActivity.this, "Print Your Message", 5000).show();