unable studio programacion móviles instantiate desarrollo curso con componentinfo aplicaciones activity java android android-fragments android-webview illegalstateexception

java - studio - unable to instantiate activity componentinfo



Android IllegalStateException: Fragmento no asociado a la actividad webview (1)

En general, obtienes ese error cuando intentas realizar un trabajo después de que el Fragmento ya no esté adjunto a la Actividad. En la devolución de llamada que desencadena la IllegalStateException, agregue una marca para isAdded: http://developer.android.com/reference/android/app/Fragment.html#isAdded()

if(!isAdded()) { return; }

Así que soy nuevo en la escritura de aplicaciones de Android, y estoy tratando de trabajar en una aplicación de práctica que espero poder convertir en algo más tarde. Tenía 3 pestañas en la barra de acciones que funcionaban bien antes de decidir intentar agregar una vista web a una de ellas. Ahora se bloquea con una IllegalStateException. Y dado que no sé demasiado sobre Android en este momento, parece que no puedo descubrir qué está mal.

La actividad principal:

private ViewPager viewPager; private TabsPagerAdapter mAdapter; private ActionBar actionBar; private String[] tabs = { "Web", "Facebook", "Twitter" }; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initialization viewPager = (ViewPager) findViewById(R.id.pager); actionBar = getActionBar(); mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(mAdapter); actionBar.setHomeButtonEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // Adding Tabs for (String tab_name : tabs) { actionBar.addTab(actionBar.newTab().setText(tab_name).setTabListener(this)); } /** * on swiping the viewpager make respective tab selected * */ viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int position) { // on changing the page // make respected tab selected actionBar.setSelectedNavigationItem(position); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // on tab selected // show respected fragment view viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { }

El WebFragment con la vista web:

public class WebFragment extends Fragment { private String url = getString(R.string.website); //@Override //public void onActivityCreated(Bundle savedInstanceState) //{ //super.onActivityCreated(savedInstanceState); //} @SuppressLint("SetJavaScriptEnabled") @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.web_fragment, container, false); WebView tolerableWebView = (WebView) getView().findViewById(R.id.webview); tolerableWebView.getSettings().setJavaScriptEnabled(true); tolerableWebView.loadUrl(url); return rootView; } }

el TabsPagerAdapter:

public class TabsPagerAdapter extends FragmentPagerAdapter { public TabsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int index) { switch (index) { case 0: // Top Rated fragment activity return new WebFragment(); case 1: // Games fragment activity return new FacebookFragment(); case 2: // Movies fragment activity return new TwitterFragment(); } return null; } @Override public int getCount() { // get item count - equal to number of tabs return 3; } }

El fragmento web xml

<?xml version="1.0" encoding="utf-8"?> <WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> </WebView>

La actividad principal xml:

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent"/>

¡Cualquier ayuda sería genial! Gracias