Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 03/02/17, 14:30:15
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
layout_weight

Tengo un problema, tengo dos parsers en un mismo activity,

Código:
for (int j = 0; j < contacts1.length(); j++) {
    JSONObject d = contacts1.getJSONObject(j);

    String dorsal_local = d.getString("dorsal") + " - ";
    String nombre_local = d.getString("nombre");

    // tmp hash map for single contact
HashMap<String, String> contact1 = new HashMap<>();

    // adding each child node to HashMap key => value
contact1.put("dorsal_local",dorsal_local);
    contact1.put("nombre_local",nombre_local);

    // adding contact to contact list
contactList.add(contact1);

}


    for (int k = 0; k < contacts2.length(); k++) {
        JSONObject e = contacts2.getJSONObject(k);

        String dorsal_visi = e.getString("dorsal") + " - ";
        String nombre_visi = e.getString("nombre");

        // tmp hash map for single contact
HashMap<String, String> contact2 = new HashMap<>();

        // adding each child node to HashMap key => value
contact2.put("dorsal_visi",dorsal_visi);
        contact2.put("nombre_visi",nombre_visi);

        // adding contact to contact list
contactList.add(contact2);
    }
Los cuales los envio para visualizar en un mismo listview:

Código:
ListAdapter adapter1 = new SimpleAdapter( DetailActivity.this, contactList,
        R.layout.titulares_row,
        new String[]{"dorsal_local", "nombre_local", "dorsal_visi", "nombre_visi"},
        new int[]{R.id.tv_dorsal_local, R.id.tv_titulares_local,R.id.tv_dorsal_visi, R.id.tv_titulares_visi});

lv1.setAdapter(adapter1);
Hasta ahi todo correcto, pero, lo que intento es que se vean en el listview el dorsal_local, nombre_local, dorsal_visitante y nombre_visitante en una misma linea y lo que me ocurre es que me muestra, dorsal y nombre de los locales y al finalizar todos es cuando empiezan a salir el dorsal y el nombre visitante.

titulares_row.xml

Código:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content""
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp">

    <TextView
android:id="@+id/tv_dorsal_local"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/primaryColor"
android:textSize="16sp"
android:text="DL"
android:gravity="left|center_vertical"
android:minLines="3"/>

    <TextView
android:id="@+id/tv_titulares_local"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:textColor="@color/primaryColor"
android:textSize="16sp"
android:gravity="center_vertical"
android:text="local"
android:minLines="3"/>

    <TextView
android:id="@+id/tv_dorsal_visi"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/primaryColor"
android:textSize="16sp"
android:text="DV"
android:gravity="left|center_vertical"
android:minLines="3"/>

    <TextView
android:id="@+id/tv_titulares_visi"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:textColor="@color/primaryColor"
android:textSize="16sp"
android:gravity="center_vertical"
android:text="Visitante"
android:minLines="3"/>

<LinearLayout>
Alguna solucion?
Gracias

Última edición por Merche300 Día 07/05/17 a las 11:29:30
Responder Con Cita


  #2  
Viejo 03/02/17, 17:12:25
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Hace lo que le estás indicando, primero filas que solo tienen texto en dorsal_local y nombre_local (primer bucle) y luego filas que solo tienen texto en dorsal_visi y nombre_visi (segundo bucle)

Si quieres que salga todo en la misma fila tendrás que añadir las cosas de visitante al mismo "contact" donde guardaste el local en el primer bucle.

P.D: Vamos, que no es problema de weights ni nada, las filas tienen cuatro campos, pero en la primera mitad los dos últimos están vacíos y no los ves. Y en la segunda mitad están vacíos los dos primeros

Última edición por mocelet Día 03/02/17 a las 17:14:40
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 03/02/17, 17:19:36
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
Hace lo que le estás indicando, primero filas que solo tienen texto en dorsal_local y nombre_local (primer bucle) y luego filas que solo tienen texto en dorsal_visi y nombre_visi (segundo bucle)

Si quieres que salga todo en la misma fila tendrás que añadir las cosas de visitante al mismo "contact" donde guardaste el local en el primer bucle.

P.D: Vamos, que no es problema de weights ni nada, las filas tienen cuatro campos, pero en la primera mitad los dos últimos están vacíos y no los ves. Y en la segunda mitad están vacíos los dos primeros
se queda igual mocelet
ya lo hice antes asi dentro de cada *for, con los *contact1

Código:
HashMap<String, String> contact1 = new HashMap<>();

// adding each child node to HashMap key => value
contact1.put("dorsal_visi",dorsal_visi);
contact1.put("nombre_visi",nombre_visi);

// adding contact to contact list
contactList.add(contact1);
Responder Con Cita
  #4  
Viejo 03/02/17, 17:27:12
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
No nos hemos entendido El problema es que llamas una vez al contactList.add para los locales y eso es como si fuera una fila nueva ya. Así que nunca vas a tener los visitantes al lado.

Al .add solo puedes llamarlo cuando tengas los cuatro valores guardados, es decir, en algún sitio debes tener esto:


[PHP]contact.put("dorsal_local",dorsal_local);
contact.put("nombre_local",nombre_local);
contact.put("dorsal_visi",dorsal_visi);
contact.put("nombre_visi",nombre_visi);
contactList.add(contact);[/PHP]


Tienes que juntar los dos bucles en uno.

Última edición por mocelet Día 03/02/17 a las 17:31:29
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 03/02/17, 17:30:01
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
No nos hemos entendido El problema es que llamas una vez al contactList.add para los locales y eso es como si fuera una fila nueva ya. Así que nunca vas a tener los visitantes al lado.

Al .add solo puedes llamarlo cuando tengas los cuatro valores guardados, es decir, en algún sitio debes tener esto:

Código:
contact.put("dorsal_local",dorsal_local);
contact.put("nombre_local",nombre_local);
contact.put("dorsal_visi",dorsal_visi);
contact.put("nombre_visi",nombre_visi);
contactList.add(contact);
Tienes que juntar los dos bucles en uno.
Gracias voy a provar
Responder Con Cita
  #6  
Viejo 03/02/17, 17:34:27
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
No nos hemos entendido El problema es que llamas una vez al contactList.add para los locales y eso es como si fuera una fila nueva ya. Así que nunca vas a tener los visitantes al lado.

Al .add solo puedes llamarlo cuando tengas los cuatro valores guardados, es decir, en algún sitio debes tener esto:


[php]contact.put("dorsal_local",dorsal_local);
contact.put("nombre_local",nombre_local);
contact.put("dorsal_visi",dorsal_visi);
contact.put("nombre_visi",nombre_visi);
contactList.add(contact);[/php]Tienes que juntar los dos bucles en uno.
no esta puesto?

contact1.put("dorsal_local",dorsal_local); contact1.put("nombre_local",nombre_local);


aaa ok juntos gracias
Responder Con Cita
  #7  
Viejo 03/02/17, 17:37:58
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Ya no hay contact1 y contact2, es un único contact (que no sé por qué lo llamas así de todas formas) que contiene los cuatro atributos (dos que has sacado de un json y dos que has sacado de otro)

Ten en cuenta que cada contact que añadas a contactList va a convertirse en una fila, así que tienes que escribir los cuatro campos antes de añadirlo.
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 03/02/17, 17:40:22
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
Ya no hay contact1 y contact2, es un único contact (que no sé por qué lo llamas así de todas formas) que contiene los cuatro atributos (dos que has sacado de un json y dos que has sacado de otro)

Ten en cuenta que cada contact que añadas a contactList va a convertirse en una fila, así que tienes que escribir los cuatro campos antes de añadirlo.
Gracias, lo entiendo, voy a ver que sale.
Responder Con Cita
  #9  
Viejo 04/02/17, 08:32:40
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
nada no me sale
Responder Con Cita
  #10  
Viejo 04/02/17, 09:12:55
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Básicamente es copiar y pegar lo del segundo bucle en el primero cambiando algún nombre de variable, debería ser algo así, suponiendo que contacts1 y contacts2 tengan el mismo número de elementos.


[PHP]for (int i = 0; i < contacts1.length(); i++) {
JSONObject d = contacts1.getJSONObject(i);
JSONObject e = contacts2.getJSONObject(i);
String dorsal_local = d.getString("dorsal") + " - ";
String nombre_local = d.getString("nombre");
String dorsal_visi = e.getString("dorsal") + " - ";
String nombre_visi = e.getString("nombre");

HashMap<String, String> contact = new HashMap<>();
contact.put("dorsal_local",dorsal_local);
contact.put("nombre_local",nombre_local);
contact.put("dorsal_visi",dorsal_visi);
contact.put("nombre_visi",nombre_visi);
contactList.add(contact);
}[/PHP]
Responder Con Cita
Gracias de parte de:
  #11  
Viejo 04/02/17, 09:34:45
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Vaya tela, no se las horas que me he tirado, no se como lo hacia pero solo me salia el ultimo item decada lista. Me confundian los contacts 1 - 2, voy a cambiar los nombre.
gracias
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 11:21:58 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007