Android正在膨胀选项卡视图的视图

Android正在膨胀选项卡视图的视图,android,android-fragments,android-tabhost,actionbarsherlock,Android,Android Fragments,Android Tabhost,Actionbarsherlock,我想在我的应用程序中实现此功能,如下所示 带有操作栏和操作项的活动 操作栏下面的选项卡 每个选项卡都有内容 我使用Tab片段和TablListener来编写代码。现在,当我运行该应用程序时,我将获得选项卡视图,但视图寻呼机和指示器丢失。我正在进行如下所示的活动。 我的代码如下所示 TabViewActivity.java public class TabViewActivity extends SherlockFragmentActivity { public void onCreat

我想在我的应用程序中实现此功能,如下所示

  • 带有操作栏和操作项的活动
  • 操作栏下面的选项卡
  • 每个选项卡都有内容
  • 我使用Tab片段和TablListener来编写代码。现在,当我运行该应用程序时,我将获得选项卡视图,但视图寻呼机和指示器丢失。我正在进行如下所示的活动。

    我的代码如下所示

    TabViewActivity.java

    public class TabViewActivity extends SherlockFragmentActivity {
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
    
                copyPrivateRawResuorceToPubliclyAccessibleFile();
    
                ActionBar actionBar = getSupportActionBar();
                actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
                // add tabs
                Tab tab1 = actionBar
                        .newTab()
                        .setText("Details")
                        .setTabListener(
                                new TabListener<TabFragment>(this, "tab1",
                                        TabFragment.class));
                actionBar.addTab(tab1);
    
                Tab tab2 = actionBar
                        .newTab()
                        .setText("Maps")
                        .setTabListener(
                                new TabListener<TabFragment>(this, "tab2",
                                        TabFragment.class));
                actionBar.addTab(tab2);
    
                // check if there is a saved state to select active tab
                if (savedInstanceState != null) {
                    getSupportActionBar().setSelectedNavigationItem(
                            savedInstanceState.getInt(ACTIVE_TAB));
                }
            }
    
    我为每个选项卡单击两个不同的类,分别命名为details.java和maps.java。 请帮我把代码放在哪里。 我还实现了视图寻呼机。这是“详细信息”选项卡的“我的查看寻呼机代码”

    DetailsActivity.java

    public class DetailsActivity extends BaseSampleActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.place_details_layout);
    
            mAdapter = new TestFragmentAdapter(getSupportFragmentManager());
    
            mPager = (ViewPager)findViewById(R.id.pager);
            mPager.setAdapter(mAdapter);
    
            mIndicator = (CirclePageIndicator)findViewById(R.id.indicator);
            mIndicator.setViewPager(mPager);
    
    
        }
    }
    
    public abstract class BaseSampleActivity extends FragmentActivity {
        private static final Random RANDOM = new Random();
    
        TestFragmentAdapter mAdapter;
        ViewPager mPager;
        PageIndicator mIndicator;
        //FragmentTabHost mTabHost;
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) 
        {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.random:
                    final int page = RANDOM.nextInt(mAdapter.getCount());
                    Toast.makeText(this, "Changing to page " + page, Toast.LENGTH_SHORT);
                    mPager.setCurrentItem(page);
                    return true;
    
                case R.id.add_page:
                    if (mAdapter.getCount() < 10) {
                        mAdapter.setCount(mAdapter.getCount() + 1);
                        mIndicator.notifyDataSetChanged();
                    }
                    return true;
    
                case R.id.remove_page:
                    if (mAdapter.getCount() > 1) {
                        mAdapter.setCount(mAdapter.getCount() - 1);
                        mIndicator.notifyDataSetChanged();
                    }
                    return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
    
    BaseSampleActivity.java

    public class DetailsActivity extends BaseSampleActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.place_details_layout);
    
            mAdapter = new TestFragmentAdapter(getSupportFragmentManager());
    
            mPager = (ViewPager)findViewById(R.id.pager);
            mPager.setAdapter(mAdapter);
    
            mIndicator = (CirclePageIndicator)findViewById(R.id.indicator);
            mIndicator.setViewPager(mPager);
    
    
        }
    }
    
    public abstract class BaseSampleActivity extends FragmentActivity {
        private static final Random RANDOM = new Random();
    
        TestFragmentAdapter mAdapter;
        ViewPager mPager;
        PageIndicator mIndicator;
        //FragmentTabHost mTabHost;
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) 
        {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.random:
                    final int page = RANDOM.nextInt(mAdapter.getCount());
                    Toast.makeText(this, "Changing to page " + page, Toast.LENGTH_SHORT);
                    mPager.setCurrentItem(page);
                    return true;
    
                case R.id.add_page:
                    if (mAdapter.getCount() < 10) {
                        mAdapter.setCount(mAdapter.getCount() + 1);
                        mIndicator.notifyDataSetChanged();
                    }
                    return true;
    
                case R.id.remove_page:
                    if (mAdapter.getCount() > 1) {
                        mAdapter.setCount(mAdapter.getCount() - 1);
                        mIndicator.notifyDataSetChanged();
                    }
                    return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
    
    公共抽象类BaseSampleActivity扩展了FragmentActivity{
    私有静态最终随机=新随机();
    测试碎片适配器;
    可视寻呼机;
    页面指示器指示器;
    //碎片表位主机;
    @凌驾
    公共布尔onCreateOptions菜单(菜单)
    {
    getMenuInflater().充气(R.menu.main,menu);
    返回true;
    }
    @凌驾
    公共布尔值onOptionsItemSelected(菜单项项){
    开关(item.getItemId()){
    案例R.id.random:
    final int page=RANDOM.nextInt(mAdapter.getCount());
    Toast.makeText(此“更改为页面”+页面,Toast.LENGTH\u SHORT);
    mPager.setCurrentItem(第页);
    返回true;
    案例R.id.add_页面:
    if(mAdapter.getCount()<10){
    mAdapter.setCount(mAdapter.getCount()+1);
    mIndicator.notifyDataSetChanged();
    }
    返回true;
    案例R.id.remove_页面:
    if(mAdapter.getCount()>1){
    mAdapter.setCount(mAdapter.getCount()-1);
    mIndicator.notifyDataSetChanged();
    }
    返回true;
    }
    返回super.onOptionsItemSelected(项目);
    }
    }
    
    我没有看到任何关于
    查看页面的代码,请查看Jake Wharton的示例代码

    谢谢您的回复。我还实现了查看页面。我已经编辑了我的问题,你可以找到查看寻呼机代码。请指导如何前进。