在使用listview的时候可能需要某几条不可用,那我们如何设置呢?
总结下我的方法:
先继承adapter,设置一个list,设置不可以使用的index号。
再重写isEnabled(int index)方法,当index在第一步的list中时,return false
为了使不可用的view看起来有灰显的效果,我们可以在getView中设置透明度。
参考例子如下:
public class MySimpleAdapter extends SimpleAdapter{
private int[] indexArray;
private Context mContext ;
public MySimpleAdapter(Context context,
List<? extends Map<String, ?>> data, int resource, String[] from,
int[] to) {
super(context, data, resource, from, to);
// TODO Auto-generated constructor stub
}
public void setItemDisabledIndex(int [] array){
indexArray = array ;
}
public int [] getDisableIndex(){
return indexArray ;
}
@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
// return super.isEnabled(position);
if(indexArray!=null){
for(int i = 0 ; i < indexArray.length; i++){
if (position == indexArray[i]) {
return false ;
}
}
}
return super.isEnabled(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = null ;
// TODO Auto-generated method stub
View v = super.getView(position, convertView, parent);
if(indexArray!=null){
for (int i = 0; i < indexArray.length; i++) {
if (position == indexArray[i]) {
v.setAlpha((float) 0.3);
break ;
}
}
}
return v ;
}
}
版权声明:本文为u014371753原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。