java - tab+viewpager中获取view中的控件问题

 彭伟波2013 发布于 2022-10-26 17:42

界面是这样的:

我用tab+viewpager实现了一个这种选项卡加滑动的效果,然后实际上是每次都是按下上面那个consume或者income才inflate一个跟其对应的layout,所以我每次inflate的layout里面所有的button都是unchecked状态。(consume选项会inflate consume.layout;income选项会inflate income.layout)

但是我想要实现:这个页面可以接收一个参数(这个参数指定哪个button需要变成checked状态),当进入这个页面时某个button直接就处于checked状态了,就像下面这样:

然后我思路的问题是 我不知道该怎样得到inflate consume.layout或inflate income.layout后返回的view,所以就无法(Button)view.findViewById(R.id.button).setChecked(true)。

问题:
1.跪求大佬给个解决办法,或者其他能实现这种效果的思路。
2.另:这里的Button其实我是想弄一个radiobutton的,但是我又不想用radiogroup默认的linearlayout,然后就自己弄的一个relativelayout,但这样单选就失效了,我看stackoverflow上说只能手动给每个button添加一个onclicklistener事件实现单选。请问还有其他解决方法可以让它恢复单选吗?

3 个回答
  • 在你的adapter里面找到:

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        return super.instantiateItem(container, position);
    }

    这里返回的对象就是你的新页面,fvb下就可以得到你的按钮了

    2022-10-27 01:05 回答
  • 如果你使用的是FragmentPagerAdapter, 那么不用获取具体的View, 获取对应的Fragment就好了, 然后在Fragment里面提供方法更新里面的View.

    ViewPager获取Fragment实例可以参考ViewPager+Fragment,某个Fragment里面的一条数据发生变化,如何局部刷新这条数据这个问题里面我的回答.

    2022-10-27 01:05 回答
  • 两种解决方法:

    1

    pageAdapter.instantiateItem(viewpager, position)

    2 使用EventBus

    2022-10-27 01:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有