Android关于获取viewpager中view的问题

巴里阿阿 2017-04-28 02:52:53
我用如下方式给pageradapter添加数据:
LayoutInflater inflater = LayoutInflater.from(this);
View tab_rank = inflater.inflate(R.layout.tab_rank, null);
View tab_talk = inflater.inflate(R.layout.tab_talk, null);
View tab_state = inflater.inflate(R.layout.tab_state, null);
View tab_classroom = inflater.inflate(R.layout.tab_classroom, null);
View tab_person = inflater.inflate(R.layout.tab_person, null);

mViews.add(tab_rank);
mViews.add(tab_talk);
mViews.add(tab_state);
mViews.add(tab_classroom);
mViews.add(tab_person);

然后用findViewById的方式获取例如tab_rank.xml这个布局里的一个控件,但是无法对这个控件进行操作,例如对一个textview进行setText. 会报错


另外 我的adapter代码也贴一下
mAdapter = new PagerAdapter() {

@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
container.removeView(mViews.get(position));
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = mViews.get(position);

container.addView(view);
return view;
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}

@Override
public int getCount() {
return mViews.size();
}
};
...全文
566 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ww570379 2019-09-08
  • 打赏
  • 举报
回复
大佬知道 如何获取每个子View中的控件的方法吗,比如我想获取里面的TextView控件的ID或者GridView的ID什么的
Demons_by 2017-05-02
  • 打赏
  • 举报
回复
你这种写法想获取有点难度=。= 你把Adapter和Activity写在一起了。。不过可以在Adapter这个内部类中通过XXXActivity.this获取到activity。我觉得你可以新建一个类把Adapter单提出来,然后在Adapter的构造方法中把activity传进去,这样应该会清晰点
巴里阿阿 2017-04-29
  • 打赏
  • 举报
回复
引用 5 楼 Demons_by 的回复:
[quote=引用 3 楼 qq_33625611 的回复:] [quote=引用 2 楼 ganshenml 的回复:] textview 怎么初始化的?
在activity的 onCreate里用findViewById啊 viewPager里的每个view都有自己的xml布局文件,我在想是不是不能直接在acticity里调用别的xml布局里的控件? [/quote] 不能直接findViewbyId的,比如要获取tab_rank.xml这个布局里的一个控件,你要 TextView textView = tab_rank.findViewById(R.id.XXX)这么用才行,直接find的话找的是你activity对应的xml里的内容[/quote] 那我再问一下。。 如何在这个activity里获取到tab_rank的引用呢
Demons_by 2017-04-29
  • 打赏
  • 举报
回复
引用 3 楼 qq_33625611 的回复:
[quote=引用 2 楼 ganshenml 的回复:] textview 怎么初始化的?
在activity的 onCreate里用findViewById啊 viewPager里的每个view都有自己的xml布局文件,我在想是不是不能直接在acticity里调用别的xml布局里的控件? [/quote] 不能直接findViewbyId的,比如要获取tab_rank.xml这个布局里的一个控件,你要 TextView textView = tab_rank.findViewById(R.id.XXX)这么用才行,直接find的话找的是你activity对应的xml里的内容
ganshenml 2017-04-29
  • 打赏
  • 举报
回复
引用 3 楼 qq_33625611 的回复:
[quote=引用 2 楼 ganshenml 的回复:] textview 怎么初始化的?
在activity的 onCreate里用findViewById啊 viewPager里的每个view都有自己的xml布局文件,我在想是不是不能直接在acticity里调用别的xml布局里的控件? [/quote]关键是代码啊,要知道你是怎么实现的?
巴里阿阿 2017-04-29
  • 打赏
  • 举报
回复
引用 2 楼 ganshenml 的回复:
textview 怎么初始化的?
在activity的 onCreate里用findViewById啊 viewPager里的每个view都有自己的xml布局文件,我在想是不是不能直接在acticity里调用别的xml布局里的控件?
ganshenml 2017-04-29
  • 打赏
  • 举报
回复
textview 怎么初始化的?
巴里阿阿 2017-04-28
  • 打赏
  • 举报
回复
大佬呢。。 顺便补充一下 上面贴的这些代码都在同一个Activity里

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧