对Listview中的自定义控件的事件监…

来源:互联网 发布:办公软件有几种 编辑:程序博客网 时间:2024/06/05 04:45
适配器端:
public class HistoryEditAdapter extendsSimpleAdapter{ 
private OnCheckedChangeListenermOnCheckedChangeListener;
private Map mIsSelected;
private List> mdata;
public HistoryEditAdapter(Context context,List> data, intresource, String[] from,int[] to,OnCheckedChangeListeneronCheckedChangeListener){
super(context, data, resource, from, to);
mOnCheckedChangeListener=onCheckedChangeListener;
mIsSelected = new HashMap();
mdata=data;
initHistoryMap();
}
public void selectAllhistorys() {
for (int i = 0; i
mIsSelected.put(i, true);
}
}

public void initHistoryMap() {
for (int i = 0; i < mdata.size(); i++) {
mIsSelected.put(i, false);
}
}

public View getView(final int position, View convertView,ViewGroup parent) {

View superView = super.getView(position, convertView,parent);
final CheckBox checkView = (CheckBox)superView.findViewById(R.id.history_edit_row_check);
checkView.setOnCheckedChangeListener(null);
checkView.setOnCheckedChangeListener(mOnCheckedChangeListener);
checkView.setTag(mdata.get(position).get("id"));
if (mIsSelected != null){
checkView.setChecked(mIsSelected.get(position));
}
checkView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (checkView.isChecked()) {
mIsSelected.put(position, checkView.isChecked());
} else {
mIsSelected.put(position, checkView.isChecked());
}
}
});
return superView;
}
}
Activity 使用:
private OnCheckedChangeListenermHistoryDeleteChangeListener;
mHistoryDeleteChangeListener = new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Boolean isExist = false;
long id = (Long)buttonView.getTag();
if (isChecked) {
if (mChecedList != null) {
for (int i = 0; i < mChecedList.size(); i++) {
if (mChecedList.get(i) == id) {
isExist = true;
}
}
}
if (!isExist) {
mChecedList.add(id);
}
} else if (mChecedList != null) {
for (int i = 0; i < mChecedList.size(); i++) {
if (mChecedList.get(i) == id) {
mChecedList.remove(i);
}
}
}
}
};
private void fillmHistoryDataHistory() {
String[] from = new String[]{Browser.BookmarkColumns.FAVICON,Browser.BookmarkColumns.TITLE,Browser.BookmarkColumns.URL};
int[] to = new int[] {R.id.history_edit_row_thumbnail,R.id.history_edit_row_title,R.id.history_edit_row_url};
mHistoryEditAdapter = newHistoryEditAdapter(this,mHistoryData,R.layout.history_edit_row,from, to,mHistoryDeleteChangeListener);
mListHistorys.setAdapter(mHistoryEditAdapter);
mHistoryEditAdapter.setViewBinder(new ViewBinder() { 
           publicboolean setViewValue(View view, Object mHistoryData, StringtextRepresentation) {  
              if(view instanceof ImageView && mHistoryData instanceof Bitmap){ 
                 ImageView iv = (ImageView) view;    
                 iv.setImageBitmap((Bitmap) mHistoryData); 
                 return true;  
              }else 
              return false; 
          
       });  
}

0 0
原创粉丝点击