Tabattività che mostra diverse schede della stessa attività (inizializza le proprietà sulle attività del bambino)

StackOverflow https://stackoverflow.com/questions/8400395

  •  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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top