android - Change list item background in custom adapter -
i have custom adapter , want pick out new messages. adapter looks like. new messages have new_message icon.
public class inputmessagesadapter extends baseadapter { private context context; private layoutinflater layoutinflater; private list<message> messagelist; private list<sellerstatement> sellerstatementlist; private list<integer> messagesids; private string arrayname = "messagesids"; private sharedpreferences prefs; public inputmessagesadapter(context context, list<message> messagelist, list<sellerstatement> sellerstatementlist) { this.context = context; layoutinflater = (layoutinflater) this.context.getsystemservice(context.layout_inflater_service); this.messagelist = messagelist; this.sellerstatementlist = sellerstatementlist; prefs = preferencemanager.getdefaultsharedpreferences(context); int size = prefs.getint(arrayname + "_size", 0); integer[] temparray = new integer[size]; for(int = 0; < size; i++) temparray[i] = prefs.getint(arrayname + "_" + i, -1); messagesids = new arraylist<integer>(arrays.aslist(temparray)); } @override public int getcount() { return messagelist.size(); } @override public object getitem(int position) { return messagelist.get(position); } @override public long getitemid(int position) { return 0; } @override public view getview(final int position, view convertview, final viewgroup parent) { message message = messagelist.get(position); view view = convertview; if (view == null) { view = layoutinflater.inflate(r.layout.fragment_messages_new_row, null); } textview subject = (textview) view.findviewbyid(r.id.tvsubject); textview date = (textview) view.findviewbyid(r.id.tvdate); textview sender = (textview) view.findviewbyid(r.id.tvsender); imageview icon = (imageview) view.findviewbyid(r.id.immessage); sellerstatement sellerstatement = sellerstatementlist.get(position); subject.settext(message.getsubject()); simpledateformat sdf = new simpledateformat("yyyy-mm-dd"); date.settext(string.valueof(sdf.format(message.gettimestamp()))); sender.settext(sellerstatement.getsender().getgoogleaccount()); drawable image = context.getresources().getdrawable(r.drawable.old_message); if(!messagesids.contains(message.getmessageid())) image = context.getresources().getdrawable(r.drawable.new_message); icon.setimagedrawable(image); return view; } }
i try it, items change color.
if(!messagesids.contains(message.getmessageid())) { image = context.getresources().getdrawable(r.drawable.new_message); view.setbackgroundcolor(color); }
and work incorrect (i change background color layout)
view view = convertview; if (view == null) { if(!messagesids.contains(message.getmessageid())) { view = layoutinflater.inflate(r.layout.fragment_messages_new_row, null); } else { view = layoutinflater.inflate(r.layout.fragment_messages_row, null); } }
how can solve task?
it simple:
view view = convertview; //find line in code view.setbackgroundcolor(color.cyan); //add line below
Comments
Post a Comment