Sto tentando di effettuare una notifica per un lettore musicale con controlli. Sto ascoltando con successo gli eventi del pulsante clic e le funzioni vengono attivate correttamente. L'unico problema che sto affrontando è la modifica del testo della notifica su questi eventi click. Ecco cosa sto cercando.Modificare dinamicamente il testo di notifica Android
Questo è il ricevitore che riceve correttamente le chiamate e attiva perfettamente ogni riga. Ma non posso cambiare il testo. Penso di dover resettare la vista del contenuto alla notifica. Se è così, come faccio?
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("stop")) {
ABCFragment.stopSong();
Log.d("Notification","Stopping");
}else if (action.equals("play")) {
ABCFragment.togglePlayPause();
Log.d("Notification","Toggle Play/Pause");
RemoteViews contentView = new RemoteViews(context.getPackageName(),R.layout.notification_layout);
contentView.setTextViewText(R.id.songName, "SOME NEW SONG");
}else if (action.equals("next")) {
ABCFragment.playNextSong();
Log.d("Notification","Next");
}
}
Soluzione:
ho aggiornato il mio Notifica costruttore della classe di passare un argomenti extra e ottenuto che funziona!
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("stop")) {
ABCFragment.stopSong();
Log.d("Notification","Stopping");
}else if (action.equals("play")) {
ABCFragment.togglePlayPause();
Log.d("Notification","Toggle Play/Pause");
new ABCNotification(context, "SOME NEW SONG");
}else if (action.equals("next")) {
ABCFragment.playNextSong();
Log.d("Notification","Next");
}
}
costruttore sta gestendo i nuovi argomenti passati.
Oh, ora tutte le documentazioni hanno senso. Grazie per segnalarlo. L'ho provato e funziona bene. Ho aggiornato la mia domanda con la soluzione. – unkn0wn
Inoltre, tieni presente che se vuoi aggiornarlo in modo carino e non cancellarlo e ricrearlo (che renderà la tua notifica cancellata e reinserita da qualche altra parte nell'elenco), devi usare 'builder.setOnlyAlertOnce (true) 'così come DEVI usare lo stesso builder, altrimenti non si aggiornerà, farà la cosa sciocca di ricreazione. (Ho combattuto con questo per giorni e ancora non riesco a farlo per aggiornare i pulsanti, li aggiungerò solo in aggiunta a quelli esistenti :-() – Jared