ListView vacía después de volver al fragmento

Tengo un FragmentTabHost con 5 fichas y un fragmento en cada una. Uno de los fragmentos contiene un ListView. Si empujo una actividad a la pila y regreso, el ListView permanece igual. Si cambio las pestañas y vuelvo a mi fragmento ListView, la lista está vacía. Mi lista sigue existiendo tal como estaba y el adaptador y la fuente de datos son exactamente iguales, pero la tabla no es dibujar.

Este es mi XML

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Timeline" > <ImageView android:id="@+id/avatarProfile" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" android:src="@drawable/background_pattern" /> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:divider="@null" android:dividerHeight="0dp" > </ListView> </FrameLayout> 

Este es mi fragmento

 public class Timeline extends Fragment { ListView list; Context context; int page = 1; JSONArray array; TimelineAdapter adapter; boolean shouldReload = true; public Timeline() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); context = this.getActivity(); page = 1; array = null; getData(page); } public void onResume(){ //((Activity) context).getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.yummmie_title_bar); super.onResume(); if(array != null){ adapter.notifyDataSetChanged(); } //context = this.getActivity(); //page = 1; //array = null; //getData(page); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_timeline, container, false); } public interface OnFragmentInteractionListener { // TODO: Update argument type and name public void onFragmentInteraction(Uri uri); } public void getData(int page){ RequestParams params = new RequestParams(); SharedPreferences pref = context.getSharedPreferences("YUMMMIE",Context.MODE_PRIVATE); params.put("idUser", pref.getString("ID_USER", null)); params.put("token", pref.getString("TOKEN", null)); params.put("pagina", Integer.toString(page)); params.put("version", "1"); MessageObject.post(params, table, "getstream"); } //Response handlers para login AsyncHttpResponseHandler table = new AsyncHttpResponseHandler(){ @Override public void onSuccess(String response){ try { JSONArray temp = new JSONArray(response); if(array == null){ array = temp; list = (ListView)((Activity) context).findViewById(R.id.listView1); adapter = new TimelineAdapter(context,array); list.setAdapter(adapter); list.setOnScrollListener(scrollListener); }else{ shouldReload = true; if(temp.length() == 0){ shouldReload = false; } array = concatArray(array,temp); adapter.jsonArray = array; adapter.notifyDataSetChanged(); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void onFailure(Throwable e, String response) { // Response failed :( try { JSONObject jsonResponse = new JSONObject(response); JSONArray array = jsonResponse.getJSONArray("errors"); JSONObject error = array.getJSONObject(0); UIHelper.sendAlert(context, error.getString("message"), error.getString("name")); } catch (JSONException e1) {} } @Override public void onFinish() { } }; OnScrollListener scrollListener = new OnScrollListener(){ @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (visibleItemCount == totalItemCount) {}else { if ((firstVisibleItem + visibleItemCount) == totalItemCount && (shouldReload == true)) { shouldReload = false; page++; getData(page); } } } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } }; private JSONArray concatArray(JSONArray... arrs) throws JSONException { JSONArray result = new JSONArray(); for (JSONArray arr : arrs) { for (int i = 0; i < arr.length(); i++) { result.put(arr.get(i)); } } return result; } } 

Creo que esto puede ser porque estás poblando tu lista en el método onCreate de tu Fragment con getData . Intente poblar su lista en onViewCreated o onResume en onResume lugar.

En primer lugar definir un adaptador para su listview. En segundo lugar controlar su tipo de respuesta. Veo la cuerda pero u puede manejar quizá jsonarray. Por último, configure su adaptador mylist.setadapter (adaptador);

  • Herramientas namespace android listitem
  • En el gaviota de navegación, haga clic en, nueva vista de lista en el cajón de navegación
  • Cómo agregar el diseño personalizado a Arrayadapter?
  • Cómo crear listview onItemclicklistener
  • Los elementos ListView y de altura variable provocan problemas de desplazamiento
  • Mejor manera de mostrar datos de flujo en la vista de lista de Android
  • Actualizar Android listview after scrollBy on
  • Android dibuja una línea horizontal entre vistas
  • Simple coursor adaptador con base de datos SQLite y custmize listview
  • Inflar diseño en ListItem basado en la variable específica ListItem
  • Android cómo modificar EditText editable dentro de un ListView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.