在adapter里面实现了isEnabled和areAllItemsEnabled函数,可以把部分item disable掉,但是不知道怎么再enable回来,试了很多方法都不行,听说是因为这两个函数实现了之后,被disable的item在系统中就被当做 separator item 处理了。。有没有大牛知道怎么把这些disable的item重新enable呢?后来换了一种思路,在getView里面让相应的convertView.setEnable(false),但是这样虽然可以灰化item项,却并不能真正disable掉item,item还会响应onItemClick事件。。各位大牛,有没有什么办法解决小弟的问题啊,急啊
解决方案 »
- 图片的缩放、拖动受范围限制,如何解决
- 获取EditText中的值出问题,查询被中断,在线等,急求解!!
- 本人菜鸟,请教一个handleMessage不执行的问题
- android 将surfaceview 放入 gridview 问题
- android读SDCard中txt文件中文乱码问题
- 用android SDK and AVD Manager无法下载
- 怎样动态更新gridview的某个item
- 新人求问:Android按键问题,求别沉
- android 蓝牙4.0 BLE 为什么回调onServicesDiscovered方法返回的status参数一直是129?
- 我项目中刚做完Android设备连接wifi打印机的功能,兼容市场上的打印机
- [有点急吧]Android修改assets文件夹中的文件问题
- android静态壁纸概率性设置失败
可以的,你要覆写Adapter的getView方法,其中convertView的setClickable方法
不行啊,我用的是arrayAdapter,getView的代码如下:
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
try {
String item = this.getItem(position);
if (convertView == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.main_item, null);
TextView itemNameTextView=(TextView) convertView.findViewById(R.id.main_item_text);
ImageView imgviewLeft=(ImageView) convertView.findViewById(R.id.main_item_icon_end);
itemNameTextView.setText(item);
if(item.equals("退出")){
imgviewLeft.setVisibility(View.GONE);
}
if(item.equals("读取优化配置文件")){
itemNameTextView.setEnabled(false);
itemNameTextView.setClickable(false);
convertView.setEnabled(false);
convertView.setClickable(false);
}
if(item.equals("优选网络上网")){
convertView.setEnabled(false);
//convertView.setFocusable(false);
}
convertView.setTag(item);
}
} catch (Exception ex) {
Log.e("Hme", "getView", ex);
}
return convertView;
}
listView.setVisibility(View.VISIBLE);
//不显示listView的内容:
listView.setVisibility(View.GONE);
我想在就是用的这种方法,判断点击的item的isEnable值,但这样没有从本质解决问题,难道android就没有提供一种直接对item设置enable和disable的方法吗??
这种方法太丑陋了啊,android难道没有提供单个item禁用/不禁用的方法吗?