自定义gridview的有关问题
自定义gridview的问题
自定义WordsGridView extends GridView
3行8列
继承BaseAdapater接口,getView()方法如下
@Override
public View getView(int position, View v, ViewGroup parent) {
final WordButton holder;
if ( v == null ) {
v = Util.getView(context, R.layout.self_ui_gridview_item);
holder = mList.get(position);
holder.viewButton = (Button)v.findViewById(R.id.item_btn);
MyLog.i("ViewButton" + position+" Created", holder.viewButton.hashCode()+"");
} else {
holder = (WordButton)v.getTag();
}
但是结果第一个按钮0创建了两次
各种查找原因无结果,学校网络又连不上VPN,google上不了,特求助 android开发大神

------解决思路----------------------
补充下:
list是外界给这个adapter的数据,可以在构造方法中传递过来,也可以公开添加list的方法或添加单项的方法(方法中通常是list.add())。
------解决思路----------------------
这位童鞋思路已经给你分析了,我再优化一下代码吧
你可以后台打印一下你传进来的list 看看是不是传递了多余的item
自定义WordsGridView extends GridView
3行8列
继承BaseAdapater接口,getView()方法如下
@Override
public View getView(int position, View v, ViewGroup parent) {
final WordButton holder;
if ( v == null ) {
v = Util.getView(context, R.layout.self_ui_gridview_item);
holder = mList.get(position);
holder.viewButton = (Button)v.findViewById(R.id.item_btn);
MyLog.i("ViewButton" + position+" Created", holder.viewButton.hashCode()+"");
} else {
holder = (WordButton)v.getTag();
}
但是结果第一个按钮0创建了两次
各种查找原因无结果,学校网络又连不上VPN,google上不了,特求助 android开发大神
------解决思路----------------------
补充下:
list是外界给这个adapter的数据,可以在构造方法中传递过来,也可以公开添加list的方法或添加单项的方法(方法中通常是list.add())。
------解决思路----------------------
这位童鞋思路已经给你分析了,我再优化一下代码吧
//我不知道你这个WordButton定义了什么东西....一般写在Adapter里面的都是静态内部类,更能起到优化的效果
final WordButton holder;
String data = mList.get(position);//加入数据是String
if ( v == null ) {
v= Util.getView(context, R.layout.self_ui_gridview_item);
holder = new WordButton();
holder.viewButton = (Button)v.findViewById(R.id.item_btn);
v.setTag(holder);
MyLog.i("ViewButton" + position+" Created", holder.viewButton.hashCode()+"");
} else {
resultView = v;
holder = (WordButton)resultView .getTag();
}
holder.viewButton.setText(data);
return v;
你可以后台打印一下你传进来的list 看看是不是传递了多余的item