Ver la Versión Completa : [ CONSULTA ] Desaparecen datos ingresados cuando cambio orientación
fernandinho_90
29/11/14, 02:12:45
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!
adndroide
01/12/14, 12:26:18
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
kriogeN
01/12/14, 18:38:01
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"
fernandinho_90
02/12/14, 05:05:30
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/Android/Android-ExpandableListView-Layout-Example ).
...
@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!
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.