【错误笔记——Android】java.lang.IllegalStateException

这个问题是我给ListView绑定数据的时候出现的,根据docs显示说,如果找不到绑定的组件就会出现这个错误。
当需要手动绑定数据的时候会重写
public boolean setViewValue(View view, Object data,String textRepresentation)
这个方法会默认返回一个false.
当返回false的时候,系统除了会执行用户设置的绑定形式外,还是继续执行原来的设定进行绑定。
当返回true的时候,系统将仅根据用户的设置来进行数据绑定。
我想把获取的值绑定到RatingBar上于是设置了如下的绑定
if (view instanceof RatingBar) { RatingBar star = (RatingBar) view; star.setActivated(false); star.setRating((int) data); }
可是我返回值没有修改,还是默认的false,于是系统就继续按照原来的设定来绑定数据。
可是原来的设定中并没有为RatingBar绑定数据的方法,于是就报IllegalStateException错误。
然而如果把返回值为true,程序将不再进行其他的数据绑定,我的ListView里还有的TextView就不会有值。我的解决方法是,干脆全部都手动设置绑定,然后返回true。
if (view instanceof RatingBar) { RatingBar star = (RatingBar) view; star.setActivated(false); star.setRating((int) data); } else if (view.getId() == R.id.txtTitle) { ((TextView) view).setText((String) data); } else if (view.getId() == R.id.text) { ((TextView) view).setText((String) data); }
然后就解决了问题。
不知道有没有其他更好的方法,请高手指点。

浙公网安备 33010602011771号