Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I have found the answer just to reinstantiate the adapter after making the necessary changes. The edited code is here.</p> <h2>MainActivity.java</h2> <pre><code>public class MainActivity extends FragmentActivity { SectionsPagerAdapter mSectionsPagerAdapter; static int current, listItem; static String TAG = "MainActivity"; static boolean flag = false; /** * The {@link ViewPager} that will host the section contents. */ static ViewPager mViewPager; static ArrayList&lt;DummySectionFragment&gt; FragmentList; static ArrayList&lt;String&gt; titles; static FragmentManager fragManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } public void init() { FragmentList = new ArrayList&lt;DummySectionFragment&gt;(); titles = new ArrayList&lt;String&gt;(); mViewPager = (ViewPager) findViewById(R.id.pager); fragManager = getSupportFragmentManager(); mSectionsPagerAdapter = new SectionsPagerAdapter(fragManager); mViewPager.setAdapter(mSectionsPagerAdapter); titles.add(0, "Main Categories"); } public void addPage(final int position, String file, String tag) { DummySectionFragment fragment = new DummySectionFragment(); Bundle args = new Bundle(); args.putString(DummySectionFragment.ARG_FILE_NAME, file); args.putString(DummySectionFragment.ARG_FILE_TAG, tag); args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position); fragment.setArguments(args); try { FragmentList.set(position, fragment); } catch (IndexOutOfBoundsException e) { FragmentList.add(position, fragment); } catch (Exception e) { e.printStackTrace(); } } public void destroyFragment(int position) { SectionsPagerAdapter pagerAdapter = (SectionsPagerAdapter) mViewPager .getAdapter(); pagerAdapter.destroyItem(mViewPager, position, FragmentList.get(position)); pagerAdapter.notifyDataSetChanged(); } public void addFragment(int position, Object object) { SectionsPagerAdapter pagerAdapter = (SectionsPagerAdapter) mViewPager .getAdapter(); pagerAdapter.notifyDataSetChanged(); } public void NextScreen(int position, String title, String file, String tagname) { if (FragmentList.size() &gt; position - 1) { for (int i = FragmentList.size() - 1; i &gt; position; i--) { titles.remove(i); FragmentList.remove(i); } titles.trimToSize(); FragmentList.trimToSize(); } titles.add(position, title); addPage(position, file, tagname); mViewPager.setAdapter(new SectionsPagerAdapter(fragManager)); mViewPager.setCurrentItem(position); } /** * A {@link FragmentPagerAdapter} that returns a fragment corresponding to * one of the sections/tabs/pages. */ public class SectionsPagerAdapter extends FragmentStatePagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); addPage(0, "catlist.xml", "pid-0"); } @Override public Fragment getItem(int position) { return FragmentList.get(position); } public void setId() { } @Override public int getCount() { return FragmentList.size(); } @Override public int getItemPosition(Object object) { return FragmentList.indexOf(object); } @Override public CharSequence getPageTitle(int position) { Log.v("titlePosition", position + ""); return titles.get(position); } } /** * A dummy fragment representing a section of the app, but that simply * displays dummy text. */ public static class DummySectionFragment extends Fragment { /** * The fragment argument representing the section number for this * fragment. */ public static ArrayList&lt;Xml_Item_Data&gt; resultList = new ArrayList&lt;Xml_Item_Data&gt;(); public static final String ARG_SECTION_NUMBER = "section_number"; public static final String ARG_FILE_NAME = "file_name"; public static final String ARG_FILE_TAG = "tag_name"; ListView parent_list; public static Bundle setValues; public DummySectionFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { savedInstanceState = this.getArguments(); parent_list = new ListView(getActivity()); String file_name = savedInstanceState.getString(ARG_FILE_NAME); String tag_name = savedInstanceState.getString(ARG_FILE_TAG); int current_level = savedInstanceState.getInt(ARG_SECTION_NUMBER); PullParser pull = new PullParser(getActivity()); pull.pullXml(file_name, tag_name); ListAdapter list_Creator = new ListAdapter(getActivity(), PullParser.Xml_Tag_Info, current_level); parent_list.setAdapter(list_Creator); return parent_list; } } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload