我的listview点击后弹出popupwindow,现在点击后已经可以使点击的item保持住变色状态
问题是希望点击popupwindow外面后可以让item的颜色变回初始的颜色,这个问题需要怎么来设置???
这是目前出现的效果,我是在onItemClick中设置的view背景色
// 点击显示
lv_patient.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
view.setBackgroundColor(getResources().getColor(R.color.blue));
Cursor cursor = (Cursor) mAdapter.getItem(position);
pid = cursor.getString(cursor.getColumnIndex("pid"));
pw.showAsDropDown(ll_patient, w / 3, h / 3);
}
});
希望各位能帮忙看一下,感谢!
------最佳解决方案--------------------
一般在Adapter的getview里面处理吧 你可以设个变量 当触发监听的时候改变变量值 然后刷新listview
------其他解决方案--------------------
Lz可以考虑给该lv添加一个setOnFocusChangeListener方法来处理
------其他解决方案--------------------
我是用的CursorAdapter,我试试改一下吧
------其他解决方案--------------------
这个不行呢,刚才试了一下,只有在第一次显示才调用这个方法了,不过也谢谢了,我还在调试各种方法
------其他解决方案--------------------
做出来了,不过是用的另外的方法
/**
* 改变listitem的背景色
*
* @param view
*/
private void itemBackChanged(View view) {
if (itemView == null) {
itemView = view;
}
itemView.setBackgroundColor(getResources().getColor(
android.R.color.transparent));
// 将上次点击的listitem的背景色设置成透明
view.setBackgroundResource(R.color.blue);
// 设置当前点击的listitem的背景色
itemView = view;
}
这方法有个缺点,就是需要再次点击时才会改变,这个还需要看看,谢谢啦
------其他解决方案--------------------
做出来了,不过是用的另外的方法
/**
* 改变listitem的背景色
*
* @param view
*/
private void itemBackChanged(View view) {
if (itemView == null) {
itemView = view;
}
itemView.setBackgroundColor(getResources().getColor(