Does this apply? http://stackoverflow.com/questions/9758799/how-to-remove-fragment-from-fragmentpageradapter
If not, there were numerous other links on Google by searching for "android fragmentpageradapter remove fragment" Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/magouyaware On Sat, Nov 2, 2013 at 9:46 AM, Boozel <[email protected]> wrote: > Sorry its actually the *Navigation Type: Swipe Views + Title Strip* type > > > On Saturday, November 2, 2013 5:45:08 PM UTC+2, Boozel wrote: >> >> Hi >> >> I have created an Activity from the template of a Blank Activity ( >> http://developer.android.com/tools/projects/templates.html#blank-activity) >> with *Navigation Type: Tabs* or *Tabs + Swipe* >> >> >> My code is below. I cannot find a way to remove a fragment. I can delete >> a tab from the pager at the Top but the fragment below is not removed. >> Please can you tell me what I am doing wrong? Any help would be appreciated. >> >> Thanks in advance. >> >> import android.content.Context; >> import android.content.Intent; >> import android.os.Bundle; >> import android.support.v4.app.Fragment; >> import android.support.v4.app.FragmentActivity; >> import android.support.v4.app.FragmentManager; >> import android.support.v4.app.FragmentPagerAdapter; >> import android.support.v4.view.ViewPager; >> import android.util.Log; >> import android.view.LayoutInflater; >> import android.view.Menu; >> import android.view.MenuItem; >> import android.view.View; >> import android.view.ViewGroup; >> import android.widget.TextView; >> import android.widget.Toast; >> >> import java.util.ArrayList; >> >> public class MainActivity extends FragmentActivity { >> private static final String TAG = "Tag"; >> >> SectionsPagerAdapter mSectionsPagerAdapter; >> Context context; >> >> ArrayList<String> titles; >> ArrayList<Fragment> frags; >> >> /** >> * The {@link ViewPager} that will host the section contents. >> */ >> ViewPager mViewPager; >> >> >> @Override >> protected void onCreate(Bundle savedInstanceState) { >> super.onCreate(savedInstanceState); >> context = getApplicationContext(); >> >> //======================== >> titles = new ArrayList<String>(); >> frags = new ArrayList<Fragment>(); >> titles.add("One"); >> titles.add("Two"); >> titles.add("Three"); >> titles.add("Four"); >> createFrags(); >> //========================= >> >> setContentView(R.layout.activity_main); >> >> // Create the adapter that will return a fragment for each of the >> three >> // primary sections of the app. >> >> mSectionsPagerAdapter = new SectionsPagerAdapter( >> getSupportFragmentManager()); >> // Set up the ViewPager with the sections adapter. >> mViewPager = (ViewPager) findViewById(R.id.pager); >> mViewPager.setAdapter(mSectionsPagerAdapter); >> } >> >> public void createFrags() >> { >> for (int i = 0; i < titles.size(); i++) >> { >> Fragment fragment = genFrag(i+""); >> frags.add(fragment); >> } >> } >> >> public Fragment genFrag(String i) >> { >> Fragment fragment = new DummySectionFragment(); >> Bundle args = new Bundle(); >> args.putString(DummySectionFragment.ARG_SECTION_NUMBER, i); >> fragment.setArguments(args); >> return fragment; >> } >> >> @Override >> public void onDestroy() >> { >> super.onDestroy(); >> } >> >> @Override >> public boolean onCreateOptionsMenu(Menu menu) { >> // Inflate the menu; this adds items to the action bar if it is >> present. >> getMenuInflater().inflate(R.menu.main, menu); >> return true; >> } >> >> @Override >> public boolean onOptionsItemSelected(MenuItem item) { >> Log.d(TAG,"onOptionsItemSelected"); >> // Handle item selection >> switch (item.getItemId()) { >> case R.id.action_settings: >> Log.d(TAG,"Settings menu item pressed"); >> Toast.makeText(this,"Settings",Toast.LENGTH_LONG); >> >> Intent i = new Intent(getApplicationContext(), >> SettingsActivity.class); >> startActivity(i); >> return true; >> case R.id.action_sendmsg: >> Log.d(TAG,"Send Message Option Pressed"); >> // Start the service, keeping the device awake while it >> is launching. >> Intent intent = new Intent(this, >> SendMsgIntentService.class); >> startService(intent); >> Log.d(TAG,"Service Should be started?"); >> return true; >> case R.id.action_add: >> Log.d(TAG,"Add menu item pressed"); >> addTab("New"); >> return true; >> case R.id.action_delete: >> Log.d(TAG,"delete menu item pressed"); >> int a = mViewPager.getCurrentItem(); >> removeTab(a); >> return true; >> default: >> return super.onOptionsItemSelected(item); >> } >> } >> >> public void addTab(String name) >> { >> Log.i(TAG,"Add Tab"); >> titles.add("New"); >> Fragment f = genFrag(name); >> frags.add(f); >> mSectionsPagerAdapter.notifyDataSetChanged(); >> >> /* >> int position = mSectionsPagerAdapter.getCount()+1; >> >> Fragment fragment = new DummySectionFragment(); >> Bundle args = new Bundle(); >> args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position); >> fragment.setArguments(args); >> >> mSectionsPagerAdapter.instantiateItem(mViewPager, position); >> mSectionsPagerAdapter.notifyAll(); >> */ >> } >> >> public void removeTab(int position) >> { >> Log.i(TAG,"Remove Tab"); >> if(titles.size()==1) >> { >> Toast.makeText(context, "You need to have at least one >> page.",Toast.LENGTH_LONG).show(); >> }else{ >> titles.remove(position); >> frags.remove(position); >> >> mSectionsPagerAdapter.notifyDataSetChanged(); >> } >> /* >> mSectionsPagerAdapter.destroyItem(mViewPager, position, >> mSectionsPagerAdapter.getItem(position)); >> mSectionsPagerAdapter.notifyDataSetChanged(); >> */ >> } >> >> /** >> * A {@link FragmentPagerAdapter} that returns a fragment >> corresponding to >> * one of the sections/tabs/pages. >> */ >> public class SectionsPagerAdapter extends FragmentPagerAdapter { >> >> public SectionsPagerAdapter(FragmentManager fm) { >> super(fm); >> } >> >> >> @Override >> public Fragment getItem(int position) { >> // getItem is called to instantiate the fragment for the >> given page. >> // Return a DummySectionFragment (defined as a static inner >> class >> // below) with the page number as its lone argument. >> return frags.get(position); >> } >> >> @Override >> public int getCount() { >> // Show 3 total pages. >> return frags.size(); >> } >> >> @Override >> public CharSequence getPageTitle(int 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 final String ARG_SECTION_NUMBER = "section_number"; >> >> public DummySectionFragment() { >> } >> >> @Override >> public View onCreateView(LayoutInflater inflater, ViewGroup >> container, >> Bundle savedInstanceState) { >> View rootView = inflater.inflate(R.layout.fragment_main_dummy, >> container, false); >> TextView dummyTextView = (TextView) >> rootView.findViewById(R.id.section_label); >> dummyTextView.setText(getArguments().getString(ARG_ >> SECTION_NUMBER)); >> return rootView; >> } >> } >> >> } >> >> >> >> >>> -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Android Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

