2012-12-27 26 views
0

我有列表视图与每个行2个文本框和1个复选框。 我想在用户选中复选框时,将一个预定义的drawable设置为该行的背景。设置行背景点击里面的列表视图

我试图在Lisusner上对我的cusotm光标适配器中的getView方法执行它,但没有成功,请帮忙!!!

回答

6

使用此方法getViewListAdapter

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) mContext 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflater.inflate(R.layout.list_item, null); 
    CheckBox checkBox = (CheckBox) view.findViewById(R.id.check); 
    checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 
      View row = (View) buttonView.getParent(); 
      if (isChecked) { 
       row.setBackgroundResource(R.drawable.list_item_background_checked); 
      } else { 
       row.setBackgroundResource(android.R.color.transparent); 
      } 
     } 
    }); 
    return view; 
} 
+0

现在,如果我想,不仅当我点击复选框,背景将被设置,但其中所有行的复选框已被选中,我将如何做到这一点? –

+0

这应该是隐含的。当复选框以编程方式被选中/取消选中时,'onCheckedChangedListener'也会执行。请接受答案。 –

+0

我今天测试了我的应用程序,它的工作原理!感谢Matthias !!! –

0

首先找到复选框ID,然后在,

box.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 

      if (isChecked) { 
       //set background when checked 
      }else{ 
       //when unselect checkbox change background 
      } 


     } 
    }); 

如果这个代码是helful然后给+1或接受。

+0

看到this..http://androidapplicationdeveloper.weebly.com/android-blog.html – Harshid