Tabactividad que muestra varias pestañas de la misma actividad (inicialice las propiedades en las actividades infantiles)

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

  •  28-10-2019
  •  | 
  •  

Pregunta

Acabo de comenzar el desarrollo de Android hace 3 días y estoy tratando de desarrollar un mensajero para Yahoo. Infierno de una primera aplicación, ¿verdad? :D

El problema que me enfrento en este momento es que estoy tratando de implementar una ventana de IM con pestañas que se supone que muestra a las personas con las que estoy charlando actualmente. Diseñé un archivo de diseño y la clase de actividad necesaria para una sola ventana de chat y estoy usando un TabActivity Para mostrar varios de ellos al usuario. Sin embargo, el problema es que estoy almacenando información específica de chat (como la ID del usuario con el que estoy charlando actualmente) en la clase de actividad en sí y estoy enfrentando problemas para inicializar esos valores cuando se crea una nueva pestaña.

Inicialmente usé un BroadcastReceiver y una intención de inicializar así:

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");
            }
        }
    }

El problema es que el friendId ¡De todas las actividades se establecen en el valor pasado para la última pestaña para crear!

¿Cuál es la solución/mejor práctica para situaciones como esta? ¿Me estoy acercando correctamente al problema?

¡Cualquier ayuda es muy apreciada!

¿Fue útil?

Solución

El problema aquí es que registra un receptor de transmisión en cada uno o sus pestañas, y cada uno de sus receptores recibe la transmisión, configurando la variable de FriendID en ella.

No estoy muy seguro de que BroadCastreceiver es el enfoque correcto aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top