SimpleAdapter设置ViewBinder

        SimpleAdapter simpleAdapter = new SimpleAdapter(this, data,R.layout.image_second ,
        		new String[]{"imageView","title"}, new int[]{R.id.photo,R.id.text});
        gridView.setAdapter(simpleAdapter);


本来如此设置十分方便,但是客户要求修改title的字体,所以只能使用ViewBinder绑定数据。

首先要初始化一个viewbinder。其中的setViewValue函数会根据deta的个数自动循环。

比如说,data中有4对imageview和title,那么setViewValue函数就会执行4*2=8次。第一次是第一个map的imageview,第二次是第一个map的title,以此类推。

所以在给控件赋值的时候判断一下这个数据是不是这个控件能用的就行了。

比如这里就是判断如果data1是数字的情况下,就给imageview赋值

如果不是那就是给title赋值。


        SimpleAdapter simpleAdapter = new SimpleAdapter(this, data,R.layout.image_second ,
        		new String[]{"imageView","title"}, new int[]{R.id.photo,R.id.text});
        
        ViewBinder bander = new ViewBinder() {
			@Override
			
			public boolean setViewValue(View view, Object data1,
					String textRepresentation) {
				// TODO Auto-generated method stub

					LinearLayout layout = (LinearLayout)view.getParent();
					ImageView img = (ImageView)layout.getChildAt(0);
					TextView tv = (TextView)layout.getChildAt(1);
					String a=data1.toString();
					if(isNumeric(a))
					{
						img.setImageBitmap(readBitmap(Integer.parseInt(data1.toString())));
					}
					else
					{
						tv.setText(data1.toString());
					}
					tv.setTypeface(dsFontEN);
				return true;
			}
		};
        simpleAdapter.setViewBinder(bander);
        gridView.setAdapter(simpleAdapter);


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值