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 29/11/14, 02:12:45
Avatar de fernandinho_90
fernandinho_90 fernandinho_90 no está en línea
Miembro del foro
Mensajes: 32
 
Fecha de registro: sep 2014
Mensajes: 32
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Desaparecen datos ingresados cuando cambio orientación

Hola de nuevo,

disculpen que los vuelva a molestar, pero tengo la siguiente duda. Tengo un listview expandable dentro de un fragment y éste fragment dentro de un FragmentActiviy. La pregunta es si es posible que cuando se cambie la orientación del celular, por ejemplo, de estar vertical pasar a horizontal los datos ingresados en el listview no se borren y sigan apareciendo? Lo que ocurre ahora es que la información ingresada en editText que están al interior (child) del listview expandable desaparece al cambiar la orientación del celular.

Como decía mi Activity principal extiende a FragmentActivity, en el cual se usa un Navigation Drawer y mediante un adaptador, cuando se presiona un item específico se muestra un Fragment determinado, y éste mediante un adaptador que implementa a ExpandableListAdapter donde uno de sus "ChildView" tiene edittext que me están ocasionando el problema mencionado anteriormente.

Si me pudiesen ayudar se los agradecería. Saludos!
Responder Con Cita


  #2  
Viejo 01/12/14, 12:26:18
Avatar de adndroide
adndroide adndroide no está en línea
Usuario novato en la web
Mensajes: 5
 
Fecha de registro: nov 2014
Mensajes: 5
Modelo de smartphone: Nexus 4
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Hola.
Cuando el movil gira se llama a la función onStop.Lo que tienes que hacer es guardar el contenido de los edittext en un objeto static (por ejemplo, un static ArrayList<String>) y en la función onResume que se llama cuando el dispositivo ha cambiado la orientación completas los edittext con los datos que has salvado.

Espero haberte ayudado
Responder Con Cita
  #3  
Viejo 01/12/14, 18:38:01
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por adndroide Ver Mensaje
Hola.
Cuando el movil gira se llama a la función onStop.Lo que tienes que hacer es guardar el contenido de los edittext en un objeto static (por ejemplo, un static ArrayList<String>) y en la función onResume que se llama cuando el dispositivo ha cambiado la orientación completas los edittext con los datos que has salvado.

Espero haberte ayudado
Eso es matar moscas a cañonazos, en Android no es nada recomendable usar static salvo en muy contadas ocasiones.

Lo que hay que hacer es guardar en un Bundle, y luego recuperarlas. Así además de para el cambio de orientación te valdrá para casos de destrucción de la Activity por cualquier otro motivo (por ejemplo recibes una llamada mientras estás dentro de la app).

De todas formas puedes configurar la Activity en el Manifest para que no se destruya cuando cambias la orientación:

android:configChanges="orientation|screenSize"
Responder Con Cita
  #4  
Viejo 02/12/14, 05:05:30
Avatar de fernandinho_90
fernandinho_90 fernandinho_90 no está en línea
Miembro del foro
Mensajes: 32
 
Fecha de registro: sep 2014
Mensajes: 32
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
Eso es matar moscas a cañonazos, en Android no es nada recomendable usar static salvo en muy contadas ocasiones.

Lo que hay que hacer es guardar en un Bundle, y luego recuperarlas. Así además de para el cambio de orientación te valdrá para casos de destrucción de la Activity por cualquier otro motivo (por ejemplo recibes una llamada mientras estás dentro de la app).

De todas formas puedes configurar la Activity en el Manifest para que no se destruya cuando cambias la orientación:

android:configChanges="orientation|screenSize"
Con eso no me resulta, en mi Fragment creo un adaptador que implementa a ExpandableListAdapter y tiene como método el siguiente código sacado de internet ( http://www.techiecommunity.net/Andro...Layout-Example ).

Código:
...
@Override     
public View getChildView(int groupPosition, int childPosition,             
boolean isLastChild, View convertView, ViewGroup parent) {                  
View v = null;        
 if(groupPosition == 0) {          
 v = View.inflate(context, R.layout.expandable_child_layout, null);           
TextView txtView = (TextView) v.findViewById(R.id.txtChld1);           
txtView.setText("Green");           
txtView.setTextSize(15f);           
txtView.setBackgroundColor(Color.GREEN);        
 }        
 if(groupPosition == 1) {            
 v = View.inflate(context, R.layout.expandable_child_1_layout, null);        
 }        
 if(groupPosition == 2) {            
 v = View.inflate(context, R.layout.expandable_child_2_layout, null);         
}         
if(groupPosition == 3) {            
 v = View.inflate(context, R.layout.expandable_child_layout, null);             
TextView txtView = (TextView) v.findViewById(R.id.txtChld1);             
txtView.setText("Purple");            
 txtView.setTextSize(15f);         
}        
 v.invalidate();        
 return v;     
}
....
Creo que es porque a cada rato al View se le aplica inflate, cómo puedo arreglarlo para que al cambiar la orientación no se reseteen los datos?

Saludos!
Responder Con Cita
Respuesta

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

Herramientas

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: 21:48:10 (GMT +1)

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