解决方案 »
- 请教android.uid.system 不能读写sdcard的问题
- 无法监听KeyEvent.KEYCODE_POWER和KeyEvent.KEYCODE_HOME
- HTC G14为什么收不到关机广播?
- SQLiteManager 如何打开db文件
- android使用mediaRecorder录制视频问题
- 启动程序
- 如何设置gridview中的某个item不可选中(不能获得焦点)
- 【OGEngine】android游戏开发,学这个好吗?
- android下如何截获蓝牙耳机的按键消息
- 短信被轰炸了怎么办啊?
- android在c/c++底层获取IMEI和IMSI???怎么弄
- 在使用GPS定位时,如何获取定位的精确度
这样应该可以了吧
View vi=rightList.getChildAt(pos);
这句应该有问题,它得到的View是什么控件啊~~想了很久都不知道怎么改...谢谢你啊
View vi=rightList.getChildAt(pos); 得到的View就是你的ListView每个Item所使用的布局或者View。如果你重写了Adapter,这个View就是你Adapter里面getView方法返回出的View。至于到底是一个Layout还是一个View,就看你ListView所用Adapter的实现了。注意要强制转换一下,View貌似不能直接设置背景颜色吧……这点我记不得了,好久不做Android了……顺便打听一下:LZ头像系本人不……是的求QQ,求交往撒……
/* 为m_ListView视图添加setOnItemClickListener监听 */
rightList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
for(int i=0;i<arg0.getCount();i++){
View v=arg0.getChildAt(i);
if (arg2 == i) {
v.setBackgroundColor(Color.RED);
}
else {
v.setBackgroundColor(Color.TRANSPARENT);}
}
}
这样做,当点击ListView时是可以成功设置选中项其背景为红色,但是失去焦点时如果按照上面给出的代码
View vi=rightList.getChildAt(pos); 则程序崩溃了....
当焦点发生改变以后,在去拿这个全局View,对他进行一些操作啊。
具体没做过这样的功能,只是个人的想法。希望对你有用。
convertView.setBackgroundDrawable(R.color.city_color);
}else{
convertView.setBackgroundDrawable(R.color.uncity_color);
}
在list.setOnItemClickListener()中有参数position(即就是arg2),将position传到适配器中,再调用adtapter.notifyDataSetChanged(),方法即可,很easy!