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