baseadapter真的是一个很灵活的类,如果摸透了真的能搞定很多的事情
这里我介绍一下关于使用baseadapter类来控制item状态
主要涉及到重载函数
@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
}
这个函数在baseadapter中默认返回的是true,返回true代表这position位置上的控件是可以使用的,如果返回false则是不可用
系统会循环调用这个函数,所以如果直接返回true或false,那么所有的item都是这个状态
所以如果你想让一部分控件可用,一部分不可用可以这么写
@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
if(position == xxx)
return true;
else
return false;
}
如果你想让这些item有时候可用,有时候不可用,那么你需要设置一个布尔值,同时靠刷新重新来调用这个函数,可以这么写
@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
if(isItemEnable == true)
return true;
else
return false;
}
public void changeItemEnable(boolean able)
{
isItemEnable = able;
notifyDataSetChanged();
}
外部只需要调用changeItemEnable()即可以改变item的可用状态
就这些了,如果你有更多需求可以继续思考如何灵活使用baseadapter