在adapter里面实现了isEnabled和areAllItemsEnabled函数,可以把部分item disable掉,但是不知道怎么再enable回来,试了很多方法都不行,听说是因为这两个函数实现了之后,被disable的item在系统中就被当做 separator item 处理了。。有没有大牛知道怎么把这些disable的item重新enable呢?后来换了一种思路,在getView里面让相应的convertView.setEnable(false),但是这样虽然可以灰化item项,却并不能真正disable掉item,item还会响应onItemClick事件。。各位大牛,有没有什么办法解决小弟的问题啊,急啊
解决方案 »
- sencha-touch 2 中文显示乱码问题
- android桌面快捷方式与点击“全部程序”里找到的快捷方式启动不同步问题
- Android阅读pdf的第三方类库
- 怎样提高手机版管理系统性能?
- android模拟器中图标怎么删除
- 模拟器中如何退出浏览器?
- 问一个slidingmenu的小问题
- ndk-build时出现Fatal error: Invalid -march= option: `armv5te'怎么解决
- android 如何保存多个用户
- 求问:一个圆固定,另一个圆随触摸移动,两个圆贴在一起时就根据触摸坐标绕固定圆运动,不能重叠,有谁有demo或者实现或者相关的算法吗?
- [有点急吧]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禁用/不禁用的方法吗?