java Viewpager“ViewGroup”更改背景色运行时
我有一个简单的viewpager,有几个视图。 我在每个视图中都有一个按钮,单击该按钮后,应该将视图的背景颜色更改为预先确定的颜色
在我的示例中,我有以下内容:
public CustomPagerAdapter(Context context) {
mContext = context;
}
@Override
public Object instantiateItem(ViewGroup collection, int position) {
LayoutInflater inflater = LayoutInflater.from(mContext);
ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.child_item, collection, false);
PopulateView(position);
collection.addView(layout);
return layout;
}
我有另一个功能(populateView),负责绘制视图和创建按钮
我想保留“ViewGroup layout”的一个实例作为类变量并使用它,但单击视图1中的按钮会导致随机视图(比如视图2)的背景颜色发生变化
所以我保存了一份“ViewGroup collection”并使用
collection.getChildAt(position).setBackgroundColor(mContext.getResources().getColor(sky));
但应用程序会在最后一次视图颜色更改时崩溃,并出现错误 JAVAlang.NullPointerException:尝试调用虚拟方法“void”。看法看法空对象引用上的setBackgroundColor(int)'
collection = {ViewPage@4834} "安卓.support.v4.view.ViewPager{e1f06a0 VFED..... ......ID 0,0-1080,1536 #7f0d0091 app:id/viewpager}"
mContext = {MainActivity@4835}
position = 2
最奇怪的是,当我查看“收藏”内部,并展开“儿童”时,只列出了两个儿童。应该有三个。我不明白这是为什么
谁能帮帮我吗
# 1 楼答案
你需要给出添加孩子的位置See here