我的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);

}
});
希望各位能帮忙看一下,感谢!

解决方案 »

  1.   

    一般在Adapter的getview里面处理吧  你可以设个变量  当触发监听的时候改变变量值  然后刷新listview
      

  2.   


    我是用的CursorAdapter,我试试改一下吧
      

  3.   


    Lz可以考虑给该lv添加一个setOnFocusChangeListener方法来处理
      

  4.   


    做出来了,不过是用的另外的方法
    /**
     * 改变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; }这方法有个缺点,就是需要再次点击时才会改变,这个还需要看看,谢谢啦
      

  5.   


    做出来了,不过是用的另外的方法
    /**
     * 改变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; }这方法有个缺点,就是需要再次点击时才会改变,这个还需要看看,谢谢啦