Android listview item click -
i'm trying listview items have different action when pressed, action depends on variable "state", problem items in same action, here code:
for(int = 0; < json.length(); i++){ jsonobject c = json.getjsonobject(i); // storing json item in variable string codigo = c.getstring(tag_codigo); string asignatura = c.getstring(tag_nombre); int estado = c.getint("estado"); final int maxhoras = c.getint("maxhoras"); final string idprogramacion = c.getstring("programacionid"); // adding value hashmap key => value hashmap<string, string> map = new hashmap<string, string>(); map.put(tag_codigo, codigo); map.put(tag_nombre, asignatura); jsonlist.add(map); list=(listview)findviewbyid(r.id.lvclases); listadapter adapter = new simpleadapter(bienvenida.this, jsonlist, r.layout.listview, new string[] { tag_codigo,tag_nombre, }, new int[] { r.id.codigo, r.id.nombre, }); list.setadapter(adapter); if(estado == 1) { log.e("estado", ""+estado); list.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { intent = new intent(bienvenida.this, registroasistencia.class); i.putextra("programacion", idprogramacion); i.putextra("maxhoras", maxhoras); startactivity(i); /*toast toast1 = toast.maketext(getapplicationcontext(), "correcto: el usuario existe", toast.length_short); toast1.show();*/ //toast.maketext(bienvenida.this, "you clicked @ " + jsonlist.get(+position).get("asignatura"), toast.length_short).show(); } }); }else{ list.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { toast.maketext(bienvenida.this, "la clase aún no ha comenzado " + jsonlist.get(+position).get("asignatura"), toast.length_short).show(); } }); } }
i working on android studio, appreciate help
acually, not answer question. after watching code seems not implementing listview
in correct way.
a simple way work listview
goes through following abstract steps:
make collection ready -> prepare adapter collection -> set adapter listview
in case, assuming calling web services getting data , web services responding json array.
now, make pojo(plain old java object) class like:
public class mylistitem{ private string codigo; private string asignatura; private int estado; private int maxhoras; private string idprogramacion; public mylistitem(string codigo, string asignatura, int estado, int maxhoras, string idprogramacion){ this.codigo = codigo; this.asignatura = asignatura; this.estado = estado; this.maxhoras = maxhoras; this.idprogramacion = idprogramacion; } // can write getter setter methods public int get_estado(){ return estado; } public string get_idprogramacion(){ return idprogramacion; } public int get_maxhoras(){ return maxhoras; } public string get_asignatura(){ return asignatura; } }
now, prepare list like:
arraylist<mylistitem> marraylist = new arraylist<>(); for(int = 0; < json.length(); i++){ jsonobject c = json.getjsonobject(i); marraylist.add( new mylistitem( c.getstring(tag_codigo), c.getstring(tag_nombre), c.getint("estado"), c.getint("maxhoras"), c.getstring("programacionid") ) ); }
now, ready list, pass custom adapter. if not aware of preparing custom adapter, check link.
once ready making custom adapter, pass list adapter like:
mycustomadapter adapter = new mycustomadapter(context, marraylist);
note: above line strictly depends constructor of custom adapter, say, mycustomadapter
after that, ready adapter, set listview, like:
list.setadapter(adapter);
now, here set onitemclicklistener
list.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { mylistitem item = (mylistitem)parent.getitem(position); if(item.get_estado() == 1) { intent = new intent(bienvenida.this, registroasistencia.class); i.putextra("programacion", item.get_idprogramacion()); i.putextra("maxhoras", item.get_maxhoras()); startactivity(i); } else{ toast.maketext(bienvenida.this, "la clase aún no ha comenzado " + item.get_asignatura(), toast.length_short).show(); } } });
hope trying achieve..
this should out.
Comments
Post a Comment