here getview function in adapter:
public view getview(int position, view convertview, viewgroup parent) { final resultitem item; final textview fn; final view rd; item = list.get(position); convertview = new relativelayout(mcontext); if (position % 2 == 0) { convertview.setbackgroundcolor(color_result_entry1); } else { convertview.setbackgroundcolor(color_result_entry2); } convertview.setminimumheight(entry_minimum_height); layoutentry(convertview, parent, relativelayout.layoutparams.match_parent, relativelayout.layoutparams.wrap_content); fn = new textview(mcontext); fn.settextsize(generic_text_size); fn.settext(item.fieldname); layoutitem(fn, (int) (parent.getwidth() * field_name_width), relativelayout.layoutparams.wrap_content, 0, 0); if (item.type == type1) { rd = new edittext(mcontext); ((edittext) rd).settextsize(generic_text_size); ((edittext) rd).settext((string) item.retrieveddata); ((edittext) rd).setbackgrounddrawable(null); rd.setonkeylistener(new onkeylistener() { @override public boolean onkey(view v, int keycode, keyevent event) { if ((event.getaction() == keyevent.action_down) && (keycode == keyevent.keycode_enter)) { item.retrieveddata = ((edittext) rd).gettext().tostring(); } return false; } }); } else if (item.type == type2) { rd = new textview(mcontext); ((textview) rd).settextsize(generic_text_size); ((textview) rd).settext((string) item.retrieveddata); rd.setonlongclicklistener(new onlongclicklistener() { @override public boolean onlongclick(view v) { if (((textview) rd).gettext().tostring().equals(resultitem.checked)) { ((textview) rd).settext(resultitem.unchecked); item.retrieveddata = resultitem.unchecked; } else { ((textview) rd).settext(resultitem.checked); item.retrieveddata = resultitem.checked; } return true; } }); } else if (item.type == type3) { rd = new textview(mcontext); ((textview) rd).settextsize(generic_text_size); ((textview) rd).settext((string) item.retrieveddata); } else if (item.type == type4) { rd = new imageview(mcontext); ((imageview) rd).setimagebitmap((bitmap) item.retrieveddata); } else { rd = new textview(mcontext); ((textview) rd).settext((string) item.retrieveddata); } layoutitem(rd, (int) (parent.getwidth() * (1.0f - field_name_width)), relativelayout.layoutparams.wrap_content, (int) (parent.getwidth() * field_name_width), 0); ((relativelayout) convertview).addview(fn); ((relativelayout) convertview).addview(rd); return convertview; } list arraylist holds data want put on listview. layoutentry , layoutitem 2 functions set view width, height , positions. there 4 types of entries want return based on type field of item.
the weird thing when click on list entry corresponding type2 , type4, background color of entry turned. taking click effect. however, type4 didn't implement clicklistener, type2 listener rd, not convertview. if click on entry returned type1 , type3, nothing happens, expected. why weird thing happening on type2 , type4?
as far got you have custom listview should have custom xml describes list item. think need closer xml.
Comments
Post a Comment