从标签布局Android获取列表中的所有标签(标签)标签 [英] Get All tab ( tabs) labels in a list from tabs Layout Android

查看:54
本文介绍了从标签布局Android获取列表中的所有标签(标签)标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经用视图分页器设置了标签布局,如下:

I have set tab layout with view pager, As follows :

 sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager(), suraName, suraId, ayatId);
        final ViewPager viewPager = findViewById(R.id.view_pager);
        viewPager.setAdapter(sectionsPagerAdapter);
         tabsLayout = findViewById(R.id.tabs);
        tabsLayout.animate();

        tabsLayout.setupWithViewPager(viewPager);

现在,我想要一个列表中的所有标签标签.如何实现?

Now, I want all tabs label in a list. How to achieve that ?

推荐答案

那么,如何从 tabsLayout 获取所有的 tab 标签.在 oncreate 设置好所有的适配器之后,viewpager 和 tabsLayout(你也可以等一段时间):

So, how to get all tab labels from tabsLayout. In oncreate after setting up all adapters, viewpager and tabsLayout (you can wait for some time also) :

         ArrayList<String> labelList = new ArrayList<>();

        labelList = tabLabelList(tabsLayout, labelList);
        if(labelList!=null)
        Log.i(TAG, "onCreate: list labels"+labelList.toString());

还有:

public static ArrayList<String> tabLabelList(View view, ArrayList<String> tabLabelsList) {
        if (!(view instanceof ViewGroup)) {
            return null;
        }

        ViewGroup group = (ViewGroup)view;
        for (int i = 0; i < group.getChildCount(); i++) {
            View child = group.getChildAt(i);
            if (child instanceof TextView) {
                String s = ((TextView)child).getText().toString();
                tabLabelsList.add (s);
            } else {
                tabLabelList(child, tabLabelsList);
            }
        }
        return  tabLabelsList;
    }

通过这种方式,可以从以 textView 作为子项的视图中获取所有文本.

This way one can get all text from a view which has a textView as child.

这篇关于从标签布局Android获取列表中的所有标签(标签)标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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