|
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
|
||||
|
||||
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! |
|
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
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 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" |
#4
|
||||
|
||||
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" 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; } .... Saludos! |
Estás aquí | ||||||
|