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.

