Android Fragments Content View aún no creado
Todo funcionaba bien. Pero después de algunas pruebas a través de mi aplicación. Se bloquea y en mi Logcat veo esta "Vista de contenido aún no creado" Después de algunos google, descubrí que debería poner mi listadapter en onActivityCreated. Mis códigos son un poco diferentes, estoy usando un lazyadapter así que creo que necesito algunos consejos. Por favor, ayúdame.
public class AndroidFragment extends SherlockListFragment implements ActionBar.TabListener{ static final String URL = "https://xml.xml"; static final String KEY_SONG = "song"; static final String KEY_ID = "id"; static final String KEY_TITLE = "title"; static final String KEY_CAT_ARTIST = "artistcat"; static final String KEY_DURATION = "duration"; static final String KEY_THUMB_URL = "thumb_url"; static final String KEY_BIG_URL = "big_url"; static final String KEY_CAT_URL = "cat_url"; static final String KEY_DESC = "cat_desc"; ArrayList<HashMap<String, String>> menuItems; ListAdapter adapter; Context appContext; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ appContext = inflater.getContext().getApplicationContext(); new loadListView().execute(); return super.onCreateView(inflater, container, savedInstanceState); } public class loadListView extends AsyncTask<Integer, String, String> { @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(Integer... args) { // updating UI from Background Thread menuItems = new ArrayList<HashMap<String, String>>(); XMLParser parser = new XMLParser(); String xml = parser.getXmlFromUrl(URL); // getting XML Document doc = parser.getDomElement(xml); // getting DOM element NodeList nl = doc.getElementsByTagName(KEY_SONG); // looping through all item nodes <item> for (int i = 0; i < nl.getLength(); i++) { // creating new HashMap HashMap<String, String> map = new HashMap<String, String>(); Element e = (Element) nl.item(i); // adding each child node to HashMap key => value map.put(KEY_ID, parser.getValue(e, KEY_ID)); map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE)); map.put(KEY_CAT_ARTIST, parser.getValue(e, KEY_CAT_ARTIST)); map.put(KEY_DURATION, parser.getValue(e, KEY_DURATION)); map.put(KEY_THUMB_URL, parser.getValue(e, KEY_THUMB_URL)); map.put(KEY_BIG_URL, parser.getValue(e, KEY_BIG_URL)); map.put(KEY_CAT_URL, parser.getValue(e, KEY_CAT_URL)); map.put(KEY_DESC, parser.getValue(e, KEY_DESC)); // adding HashList to ArrayList menuItems.add(map); } return null; } @Override protected void onPostExecute(String args) { if (getActivity() != null) { adapter=new MainPageLazyAdapter(getActivity(), menuItems); setListAdapter(adapter); } } } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { ft.add(android.R.id.content, this); ft.attach(this); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { ft.detach(this); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } }
MI LOGCAT:
- Cómo llamar a getBaseContext () en Fragment
- Fragment flips and losses Imagen
- Android - Backstack al reemplazar el fragmento en ViewPager
- Llame a un método de actividad de un fragmento
- FragmentPagerAdapter sólo existe en Android.Support.V4.App (y no en Android.App)
10-08 17:29:32.946: E/AndroidRuntime(6376): FATAL EXCEPTION: main 10-08 17:29:32.946: E/AndroidRuntime(6376): java.lang.IllegalStateException: Content view not yet created 10-08 17:29:32.946: E/AndroidRuntime(6376): at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328) 10-08 17:29:32.946: E/AndroidRuntime(6376): at android.support.v4.app.ListFragment.getListView(ListFragment.java:222) 10-08 17:29:32.946: E/AndroidRuntime(6376): at in.wptrafficanalyzer.actionbarsherlocknavtab.AndroidFragment$loadListView.onPostExecute(AndroidFragment.java:108) 10-08 17:29:32.946: E/AndroidRuntime(6376): at in.wptrafficanalyzer.actionbarsherlocknavtab.AndroidFragment$loadListView.onPostExecute(AndroidFragment.java:1) 10-08 17:29:32.946: E/AndroidRuntime(6376): at android.os.AsyncTask.finish(AsyncTask.java:602) 10-08 17:29:32.946: E/AndroidRuntime(6376): at android.os.AsyncTask.access$600(AsyncTask.java:156) 10-08 17:29:32.946: E/AndroidRuntime(6376): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615) 10-08 17:29:32.946: E/AndroidRuntime(6376): at android.os.Handler.dispatchMessage(Handler.java:99) 10-08 17:29:32.946: E/AndroidRuntime(6376): at android.os.Looper.loop(Looper.java:137) 10-08 17:29:32.946: E/AndroidRuntime(6376): at android.app.ActivityThread.main(ActivityThread.java:4512) 10-08 17:29:32.946: E/AndroidRuntime(6376): at java.lang.reflect.Method.invokeNative(Native Method) 10-08 17:29:32.946: E/AndroidRuntime(6376): at java.lang.reflect.Method.invoke(Method.java:511) 10-08 17:29:32.946: E/AndroidRuntime(6376): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:982) 10-08 17:29:32.946: E/AndroidRuntime(6376): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 10-08 17:29:32.946: E/AndroidRuntime(6376): at dalvik.system.NativeStart.main(Native Method)
- Pila trasera personalizada para cada fragmento en TabHost en Android
- Llamar aStart () de Fragmento antes para mostrar Viewpager, navigation_mode_tabs
- Diferencia entre onResume () y onResumeFragments ()
- FragmentPagerAdapter no está quitando elementos (Fragmentos) correctamente
- Cómo llamar o aparecer fragmento al hacer clic en el botón
- Fragmentos y notificaciones: Objetivo diferentes actividades de notificación; Dependiendo de la configuración de la pantalla
- ¿Cómo implementar el Menú de Dos Niveles usando el Cajón de Navegación de Android?
- Confundido sobre el uso de Fragmentos en la aplicación
Creo que esto debería resolver su problema.
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View view = inflater.inflate(R.layout.layout, null); return view //You must return your view here } @Override public void onResume() { //onResume happens after onStart and onActivityCreate new loadListView().execute(); super.onResume() ; }
- Appcompat Toolbar "android: title" el atributo no funciona
- Diferenciar los diálogos individuales con DialogInterface.OnClickListener