首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加ListNavigationCallbacks在我的动作栏在夏洛克在安卓?

添加ListNavigationCallbacks在我的动作栏在夏洛克在安卓?
EN

Stack Overflow用户
提问于 2013-03-29 06:22:57
回答 1查看 388关注 0票数 0

我正在开发一个应用程序,使用神探夏洛克库的ActionBar。我想在ActionBar的右端添加一个项目列表,即ListNavigation in ActionBar

目前,我正在使用以下代码:

代码语言:javascript
复制
public class MainActivity extends SherlockFragmentActivity {
    ActionBar mActionBar;
    ViewPager mPager;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /** Getting a reference to action bar of this activity */
        mActionBar = getSupportActionBar();

        /** Set tab navigation mode */
        mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(
                this, 
                R.array.locations, 
                android.R.layout.simple_spinner_dropdown_item);

        mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        mActionBar.setListNavigationCallbacks(mSpinnerAdapter, this);

        /** Getting a reference to ViewPager from the layout */
        mPager = (ViewPager) findViewById(R.id.pager);

        /** Getting a reference to FragmentManager */
        FragmentManager fm = getSupportFragmentManager();      

        /** Defining a listener for pageChange */
        ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener(){
            @Override
            public void onPageSelected(int position) {              
                super.onPageSelected(position);
                mActionBar.setSelectedNavigationItem(position);             
            }

        };

        /** Setting the pageChange listner to the viewPager */
        mPager.setOnPageChangeListener(pageChangeListener);

        /** Creating an instance of FragmentPagerAdapter */
        MyFragmentPagerAdapter fragmentPagerAdapter = new MyFragmentPagerAdapter(fm);

        /** Setting the FragmentPagerAdapter object to the viewPager object */
        mPager.setAdapter(fragmentPagerAdapter);

        mActionBar.setDisplayShowTitleEnabled(true);

        /** Defining tab listener */
        ActionBar.TabListener tabListener = new ActionBar.TabListener() {

            @Override
            public void onTabUnselected(Tab tab, FragmentTransaction ft) {              
            }

            @Override
            public void onTabSelected(Tab tab, FragmentTransaction ft) {
                mPager.setCurrentItem(tab.getPosition());

            }

            @Override
            public void onTabReselected(Tab tab, FragmentTransaction ft) {
            }
        };

        /** Creating Android Tab */
        Tab tab = mActionBar.newTab()
                .setText("Android")
                .setIcon(R.drawable.android)
                .setTabListener(tabListener);

        mActionBar.addTab(tab);

        /** Creating Apple Tab */
        tab = mActionBar.newTab()
                .setText("Apple")
                .setIcon(R.drawable.apple)
                .setTabListener(tabListener); 
        mActionBar.addTab(tab);  
        tab = mActionBar.newTab()
                .setText("Apple-2")
                .setIcon(R.drawable.apple)
                .setTabListener(tabListener); 

        mActionBar.addTab(tab);  
        tab = mActionBar.newTab()
                .setText("Apple-3")
                .setIcon(R.drawable.apple)
                .setTabListener(tabListener); 
        mActionBar.addTab(tab);  

    }
}

1)但是我在mActionBar.setListNavigationCallbacks(mSpinnerAdapter, this);上下文中遇到了错误--这里不起作用。

2)我不知道如何弹出这个按钮上的列表。

3)另外,当我为导航列表实现这三行代码时

代码语言:javascript
复制
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(
                    this, 
                    R.array.locations, 
                    android.R.layout.simple_spinner_dropdown_item);

            mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
            mActionBar.setListNavigationCallbacks(mSpinnerAdapter, this);

我的桌子被藏起来了。请建议我帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2013-03-29 06:28:38

1)您的活动是否实现了OnNavigationListener?情况似乎并非如此,您正在将对活动实例的引用传递给需要一个setListNavigationCallbacks()的OnNavigationListener ()。

我不知道你说的这个按钮点击是什么意思。

3)您的选项卡之所以隐藏,是因为您指定的是NAVIGATION_MODE_LIST而不是NAVIGATION_MODE_TABS。您只能拥有一个或另一个作为ActionBar的一部分。

如果希望同时使用选项卡和下拉选项卡,则可以在NAVIGATION_MODE_LIST中使用ActionBar,然后让活动中的片段包含一组选项卡。请看一下TabHost类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15698405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档