android gridview分页后刷新不了 130

androidgridview分页后,因为new了总页数个Adapter,所以Adapter的notifyDataSetChanged()无法刷新gridview怎么办?... android gridview分页后,因为new了总页数个Adapter,所以Adapter的notifyDataSetChanged()无法刷新gridview怎么办?
要实现的的功能是分完页后在广播里使用Adapter的notifyDataSetChanged()方法来刷新gridview
展开
 我来答
百度网友6d7f9e3
推荐于2016-06-28 · TA获得超过141个赞
知道答主
回答量:69
采纳率:0%
帮助的人:25.3万
展开全部
近期些项目,发现一个现象。在重写Adapter中getView的时候,发现两种方式,导致按下的效果不同。
常用的方式:

[java]
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (SystemUtils.list.size() <= 0) {
return null;
}
final HistoryItemInfo info = SystemUtils.list.get(position);
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(
R.layout.gv_item, null);
}
ImageView imgView = (ImageView) convertView.findViewById(R.id.imgTitle);
try {
int resourceId = Integer.parseInt(info.picPath);
imgView.setImageResource(resourceId);
} catch (Exception e) {
imgView.setImageDrawable(BitmapDrawable.createFromPath(info.picPath));
}
TextView txtTitle = (TextView)convertView.findViewById(R.id.txtTitle);
txtTitle.setText(info.title);
return convertView;
}
这种写法,点击时候整个区域全被颜色笼罩。

另外一种:

[java]
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int index = position;
RelativeLayout relativeLayout = null;
SpringImageView imageview = null;
TextView view = null;
if (convertView == null) {
relativeLayout = new RelativeLayout(mContext);
relativeLayout.setLayoutParams(new GridView.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
imageview = new SpringImageView(mContext);
imageview.setId(111);
imageview.setScaleType(ImageView.ScaleType.FIT_XY);
view = new TextView(mContext);
view.setTextColor(Color.BLACK);
view.setGravity(Gravity.CENTER_HORIZONTAL);
view.setTextSize(20);
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(
150, ViewGroup.LayoutParams.WRAP_CONTENT);
lp1.addRule(RelativeLayout.BELOW, imageview.getId());
lp1.addRule(RelativeLayout.CENTER_HORIZONTAL);
relativeLayout.addView(view, lp1);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
lp2.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lp2.addRule(RelativeLayout.CENTER_HORIZONTAL);
relativeLayout.addView(imageview, lp2);
} else {

relativeLayout = (RelativeLayout) convertView;
view = (TextView) relativeLayout.getChildAt(0);
imageview = (SpringImageView) relativeLayout.getChildAt(1);
}
imageview.setImageDrawable(getDrawable(gridList.get(position)));
imageview.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (onItemClickLisenter != null) {
onItemClickLisenter.onItemClick(gridList, index,page);
}
}
});
view.setText(gridList.get(position).title);
return relativeLayout;
}
这种写法,点击的时候,只在ImageView起作用,相当于,OnItemClick事件在ImageView起了作用。
望采纳,手打了半天呢!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式