如何在TabLayout Android上的活动中获取Tab单击事件 [英] How to get tab click event in activity on TabLayout android

查看:467
本文介绍了如何在TabLayout Android上的活动中获取Tab单击事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的活动中onCreate方法的实现.我需要动态创建选项卡.为简单起见,我制作了2个标签.

This is the implementation of the onCreate method in my activity. I need to create the tabs dynamically. For simplicity, I made 2 tabs.

public class ActivityProductList extends AppCompatActivity {

    private android.support.v7.widget.SearchView searchView = null;
    private RecyclerView recyclerView;
    MyAdapter adapter;
    List<ParentListItem> parentListItems = new ArrayList<>();
    List<ParentListItem> originalProductList = new ArrayList<>();
    String query = null;
    int categoryId = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_products_final);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("PRODUCTS");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        //ViewPager viewPager = (ViewPager) findViewById(R.id.pager);

        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
        tabLayout.addTab(tabLayout.newTab().setText("Tab 2"));
        //setupViewPager(viewPager);
        //tabLayout.setupWithViewPager(viewPager);
        //viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));

        searchView = (android.support.v7.widget.SearchView) findViewById(R.id.searchView);
        searchView.setIconified(false);
        searchView.onActionViewExpanded();
        searchView.clearFocus();
        searchView.setOnQueryTextListener(new android.support.v7.widget.SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                if (adapter != null)
                    filterData(query);
                return false;
            }

            @Override
            public boolean onQueryTextChange(String query) {
                if (adapter != null)
                    filterData(query);
                return false;
            }
        });

    }
}

我想在单击选项卡时更改 EditText 值.该 EditText 处于同一活动中.

I want to change the EditText value on clicking on a tab. That EditText is in the same activity.

如何在活动"中获取Tab点击事件?

How do I get Tab click event in Activity?

推荐答案

您可以使用 onTabSelected 侦听器来实现.

You can use the onTabSelected listener to achieve that.

tabLayout.addOnTabSelectedListener(new OnTabSelectedListener() {
        @Override
        public void onTabSelected(Tab tab) {
             switch(tab.getPosition()) {
                 case 0:
                  ....
             }
        }

P.S. setOnTabSelectedListener 已过时,请改用 addOnTabSelectedListener .

P.S. setOnTabSelectedListener is deprecated, please use addOnTabSelectedListener instead.

这篇关于如何在TabLayout Android上的活动中获取Tab单击事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆