Android Adapter问题探究
大家好,最近在做Android项目,在实现类似驾考宝典里面查看所有试题题号的功能。适配器不可避免要使用,但在使用过程中遇到两个问题。
有一个gridview,里面放的是所有试题题号,默认是不显示的,当我点击界面按钮时显示gridview,同时设置已经做过的题目样式,如果试题已作答,则在gridview对应的题号item改变背景以示作答。
第一个问题,girdview中的第一个item修改背景不起作用。
第二个问题,必须要先让gridview显示一次(只要显示一次即可,后面无论gridview是显示还是隐藏,设置item都有效),然后在设置item背景样式才起作用,否则没效果。请各位帮帮忙,实在是烦躁。
我是自定义的适配器,在适配器中我还定义了一个设置item背景色的方法A();,我发现调用A()方法时,还未执行getView()方法,这样在设置背景样式自然不管用,但不清楚为什么。
以下是自定义适配器的部分代码:
有一个gridview,里面放的是所有试题题号,默认是不显示的,当我点击界面按钮时显示gridview,同时设置已经做过的题目样式,如果试题已作答,则在gridview对应的题号item改变背景以示作答。
第一个问题,girdview中的第一个item修改背景不起作用。
第二个问题,必须要先让gridview显示一次(只要显示一次即可,后面无论gridview是显示还是隐藏,设置item都有效),然后在设置item背景样式才起作用,否则没效果。请各位帮帮忙,实在是烦躁。
我是自定义的适配器,在适配器中我还定义了一个设置item背景色的方法A();,我发现调用A()方法时,还未执行getView()方法,这样在设置背景样式自然不管用,但不清楚为什么。
以下是自定义适配器的部分代码:
/**存储所有item,key:位置;value:Item中的控件*/
private Map<Integer, TextView> items;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = inflater.inflate(R.layout.item_text, null);
}
TextView result = (TextView) convertView.findViewById(R.id.item_text_title);
result.setText(datas[position]);
items.put(position, result);
return convertView;
}
/**
* 设置作答正确时的样式
* @param position
*/
public void changeCorrectStyle(int position){
if(items == null || items.size() <= 0){
return;
}
TextView tvItem = items.get(position);
tvItem.setBackground(context.getResources().getDrawable(R.drawable.shape_green));
}
...全文
相关推荐
安卓Android源码——hotel宾馆系统.zip
在安卓(Android)平台上开发应用时,理解源码是非常重要的,因为它可以帮助开发者深入探究系统的工作原理,提升编程技能,以及优化应用性能。
Android studio 安卓通讯录开发
在实践中不断熟悉Android Studio的使用,将有助于提升你的编程技能和解决问题的能力。
android(Adapter)适配器用法总结
在本文中,我们讨论了 Android 中的 Adapter 的种类和应用场景,并对每种 Adapter 的特点和优缺点进行了分析。同时,我们也讨论了在使用 Adapter 时需要注意的一些问题。
Android支持DataBinding的RecyclerView通用Adapter
现在,我们讨论的"Android支持DataBinding的RecyclerView通用Adapter"是将`DataBinding`与`BRVAH`相结合的产物,它进一步简化了`RecyclerView
Kotlin编写Android适配器Adapter
Kotlin编写Android适配器Adapter概述:在Android开发中,Adapter是一种非常重要的组件,它负责将数据绑定到ListView、GridView等控件中。


