znl_12 2012-10-15 03:31 采纳率: 0%
浏览 5280
已采纳

使用ViewPaper片段中添加标题

我使用ViewPaper让用户在段落之间切换,如何给屏幕上的每个段落添加标题呢?

package com.multi.andres;

import java.util.List;
import java.util.Vector;

import com.viewpagerindicator.TitlePageIndicator;
import com.viewpagerindicator.TitleProvider;

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;

public class ViewPagerFragment extends FragmentActivity{

    private PagerAdapter mPagerAdapter; //contiene el pager adapter
    private static String[] titulosPaginas = { "APP 1", "APP 2" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.lcmeter); //layout que contiene el ViewPager

        initialisePaging(); //inicializo las paginas
    }

    private void initialisePaging() {

        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, FragmentPrueba1.class.getName()));
        fragments.add(Fragment.instantiate(this, FragmentPrueba2.class.getName()));
        this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager(), fragments);

        ViewPager pager = (ViewPager)super.findViewById(R.id.pager);
        pager.setAdapter(this.mPagerAdapter);

        //Agrega los titulos
        TitlePageIndicator titleIndicator = (TitlePageIndicator) findViewById(R.id.titulos);    //layout XML
        titleIndicator.setViewPager(pager);
    }

         public class PagerAdapter extends FragmentPagerAdapter implements TitleProvider {

        private List<Fragment> fragments;

        public String getTitle(int position) {
            // TODO Auto-generated method stub
            return titulosPaginas[position];    // titulo de la pagina
        }

        public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
            super(fm);
            this.fragments = fragments;
        }

        @Override
        public int getCount() {
            return this.fragments.size();
        }

        @Override
        public Fragment getItem(int position) {
            return this.fragments.get(position);
        }

    }

}
  • 写回答

1条回答

  • myq_26 2012-10-15 05:35
    关注
    public class Polling extends SherlockFragmentActivity implements OnMenuItemClickListener {
        private ViewPager mViewPager;
        private TabsAdapter mTabsAdapter;
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mViewPager = new ViewPager(this);
            mViewPager.setId(R.id.pager);
            setContentView(mViewPager);
            bar = getSupportActionBar();
            bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
            bar.setDisplayShowTitleEnabled(false);
            bar.setDisplayShowHomeEnabled(false);
            mTabsAdapter = new TabsAdapter(this, mViewPager);
            mTabsAdapter.addTab(bar.newTab().setText(R.string.login),
                    LoginFragment.class, null);
            mTabsAdapter.addTab(bar.newTab().setText(R.string.economics),
                    EconFragment.class, null);
            mTabsAdapter.addTab(bar.newTab().setText(R.string.elections),
                    ElectionsFragment.class, null);
            mTabsAdapter.addTab(bar.newTab().setText(R.string.politics),
                    PoliticsFragment.class, null);
            mTabsAdapter.addTab(bar.newTab().setText(R.string.science),
                    ScienceFragment.class, null);
            mTabsAdapter.addTab(bar.newTab().setText(R.string.finance),
                    FinanceFragment.class, null);
            mTabsAdapter.addTab(bar.newTab().setText(R.string.religion),
                    ReligionFragment.class, null);
            mTabsAdapter.addTab(bar.newTab().setText(R.string.military),
                    MilitaryFragment.class, null);
            mTabsAdapter.addTab(bar.newTab().setText(R.string.international),
                    InternationalFragment.class, null); 
        }
    
        public static class TabsAdapter extends FragmentPagerAdapter
        implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
            private final Context mContext;
            private final ActionBar mActionBar;
            private final ViewPager mViewPager;
            private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
    
            static final class TabInfo {
                private final Class<?> clss;
                private final Bundle args;
    
                TabInfo(Class<?> _class, Bundle _args) {
                    clss = _class;
                    args = _args;
                }
            }
    
            public TabsAdapter(SherlockFragmentActivity activity, ViewPager pager) {
                super(activity.getSupportFragmentManager());
                mContext = activity;
                mActionBar = activity.getSupportActionBar();
                mViewPager = pager;
                mViewPager.setAdapter(this);
                mViewPager.setOnPageChangeListener(this);
            }
    
            public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) {
                TabInfo info = new TabInfo(clss, args);
                tab.setTag(info);
                tab.setTabListener(this);
                mTabs.add(info);
                mActionBar.addTab(tab);
                notifyDataSetChanged();
            }
    
            public int getCount() {
                return mTabs.size();
            }
    
            public SherlockFragment getItem(int position) {
                TabInfo info = mTabs.get(position);
                return (SherlockFragment)Fragment.instantiate(mContext, info.clss.getName(), info.args);
            }
    
            public void onPageSelected(int position) {
                mActionBar.setSelectedNavigationItem(position);
            }
            public void onPageScrollStateChanged(int state) {}
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
    
            public void onTabSelected(Tab tab, FragmentTransaction ft) {
                mViewPager.setCurrentItem(tab.getPosition());
                //Log.v(TAG, "clicked");
                Object tag = tab.getTag();
                for (int i=0; i<mTabs.size(); i++) {
                    if (mTabs.get(i) == tag) {
                        mViewPager.setCurrentItem(i);
                    }
                }
            }
            public void onTabUnselected(Tab tab, FragmentTransaction ft) {}
            public void onTabReselected(Tab tab, FragmentTransaction ft) {}
            public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {}
            public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {}
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B