Tabattività che mostra diverse schede della stessa attività (inizializza le proprietà sulle attività del bambino)
-
28-10-2019 - |
Domanda
Ho appena iniziato lo sviluppo di Android 3 giorni fa e sto cercando di sviluppare un messaggero per Yahoo. Inferno una prima applicazione, giusto?! :D
Il problema che sto affrontando in questo momento è che sto cercando di implementare una finestra IM a schede che dovrebbe mostrare alle persone con cui sto chiacchierando. Ho progettato un file di layout e la classe di attività necessaria per una singola finestra di chat e sto usando un TabActivity
per mostrare molti di questi all'utente. Tuttavia, il problema è che sto archiviando alcune informazioni specifiche per chat (come l'ID dell'utente con cui sto chiacchierando) nella classe di attività stessa e sto affrontando problemi di inizializzazione di tali valori quando viene creata una nuova scheda.
Inizialmente ho usato un file BroadcastReceiver
e un intento di inizializzare così:
protected class MyListener extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals(
"com.sirm2x.messenger.CHAT_WINDOW_CREATED"))
{
ChatWindowActivity.this.friendId = intent.getExtras()
.getString("friendId");
}
}
}
Il problema è che il friendId
Di tutte le attività sono impostate sul valore approvato per l'ultima tab-to-be-created!
Qual è la soluzione/best practice per situazioni come questa? Mi sto persino affrontando correttamente il problema?
Qualsiasi aiuto è estremamente apprezzato!
Soluzione
Il problema qui è che registri un ricevitore di trasmissione in ciascuna o nelle tue schede e ciascuno del ricevitore riceve la trasmissione, impostando la variabile FriendID.
Non sono abbastanza sicuro che Broadcastreceiver sia l'approccio corretto qui.