Add and Remove Strikethrough of TextView Android -
hello guys i'm having issue putting strikethrough in textview. i'm doing right now:
private void initcontrols() { tvnote = (textview) findviewbyid (r.id.textview1); tvnote.setvisibility(view.gone); filldata(); } private void filldata() { dbconnect(); // array list of sync info items arraylist<syncdataitems> itemlist = new arraylist<syncdataitems>(); list<todos> todos = dbhelper.getalltodos(); syncdataitems _items; (todos cn : todos) { string log = "id: " + cn.getid() + " , todo: " + cn.gettodo(); log.e("todo list ", log); _items = new syncdataitems(cn.gettodo(), cn.gettodo(), true); itemlist.add(_items); } dataadapter = new mycustomadapter(this, r.layout.item_info, itemlist); listview = (listview) findviewbyid(r.id.listview1); // assign adapter listview listview.setadapter(dataadapter); if(dataadapter.getcount() == 0) { tvnote.setvisibility(view.visible); tvnote.settext("no records yet"); } } private class mycustomadapter extends arrayadapter<syncdataitems> { private arraylist<syncdataitems> itemlist; public mycustomadapter(context context, int textviewresourceid, arraylist<syncdataitems> itemlist) { super(context, textviewresourceid, itemlist); this.itemlist = new arraylist<syncdataitems>(); this.itemlist.addall(itemlist); } private class viewholder { textview code; checkbox name; } @override public view getview(int position, view convertview, viewgroup parent) { holder = null; log.v("convertview", string.valueof(position)); if (convertview == null) { layoutinflater vi = (layoutinflater) getsystemservice(context.layout_inflater_service); convertview = vi.inflate(r.layout.item_info, null); holder = new viewholder(); holder.code = (textview) convertview.findviewbyid(r.id.code); holder.name = (checkbox) convertview.findviewbyid(r.id.checkbox1); convertview.settag(holder); holder.name.setonclicklistener(new view.onclicklistener() { public void onclick(view v) { checkbox cb = (checkbox) v; syncdataitems _item = (syncdataitems) cb.gettag(); _item.setselected(cb.ischecked()); holder.name.setoncheckedchangelistener(new oncheckedchangelistener() { public void oncheckedchanged(compoundbutton buttonview, boolean ischecked) { if ( ischecked ) { log.e("tag", "checked!"); holder.code.append("checked!"); holder.code.setpaintflags(paint.strike_thru_text_flag | paint.anti_alias_flag); } else { holder.code.setpaintflags(holder.code.getpaintflags() & (~ paint.strike_thru_text_flag)); log.e("tag", "unchecked!"); } } }); } }); } else { holder = (viewholder) convertview.gettag(); } final syncdataitems item = itemlist.get(position); holder.code.settext(item.getitem()); holder.name.setchecked(item.isselected()); holder.name.settag(item); homecoming convertview; } } but strikethrough effect not working when check or uncheck checkbox. ideas? help appreciated. thanks.
on checked, change
holder.code.setpaintflags(paint.strike_thru_text_flag | paint.anti_alias_flag); to
holder.code.setpaintflags(holder.code.getpaintflags() | paint.strike_thru_text_flag); it should work.
android android-checkbox
No comments:
Post a Comment