设立listview中的某些行不可用的方法
设置listview中的某些行不可用的方法
在使用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 ; } }