android - Allow logged in user to click its row -
i struggling following. have list view showing users in belong team. rows contain user's knickname , number of steps walked since every last midnight using google fit sdk.

so see cerberus 33 walked 2342 steps , lenovo 0.
i want logged in user cerberus 33 in phone,to click 1 row i.e. first one,so can see alert dialog leave team button.
here part of code.
i retrieve logged in username , password activity using shared preferences.
sharedpreferences settings = preferencemanager.getdefaultsharedpreferences(this); username = settings.getstring("username", ""); password = settings.getstring("password", ""); and compare logged in username username database via volley library.
private void getteamplayers(final string teamid, final string username, final string password) { string tag_json_obj = "json_obj_req"; final hashmap<string, string> postparams1 = new hashmap<string, string>(); postparams1.put("team_id", teamid); postparams1.put("username", username); postparams1.put("password", password); response.listener<jsonobject> listener; response.errorlistener errorlistener; final jsonobject jsonobject = new jsonobject(postparams1); //{"team_id":"189","password":"xxx","username":"cerberus 33"} final jsonarrayrequest jsonobjreq1 = new jsonarrayrequest(appconfig.url_get_team, jsonobject, new com.android.volley.response.listener<jsonarray>() { @override public void onresponse(jsonarray response) { log.d("tag", response.tostring()); try { log.d("jsonarray", response.tostring()); (int = 0; < response.length(); i++) { jsonobject item = response.getjsonobject(i); usertype = item.getstring("user_type"); username = item.getstring("username"); teamplayers tm = new teamplayers(); tm.setlateststeps(item.getstring("latest_steps")); tm.setnickname(item.getstring("nickname")); tm.setusertype(item.getstring("user_type")); string lateststeps = item.getstring("latest_steps"); string usertype = item.getstring("user_type"); int totalsteps = integer.valueof(lateststeps); log.d("total", "steps: " + totalsteps); teamplayerslist.add(tm); log.d("username",username); log.d("username",username); //comparing username(loggin user) //with username(username retrieved database) if(username.equals(username)) { listview.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { toast.maketext(getapplicationcontext(), "it's me!!", toast.length_short).show(); } }); } } } catch (jsonexception e) { e.printstacktrace(); } //pdialog.dismiss(); } }, new com.android.volley.response.errorlistener() { @override public void onerrorresponse(volleyerror error) { volleylog.d("tag", "error: " + error.getmessage()); //pdialog.dismiss(); } }) { @override public string getbodycontenttype() { return "application/json; charset=utf-8"; } }; // adding request request queue appcontroller.getinstance().addtorequestqueue(jsonobjreq1, tag_json_obj); volleysingleton.getinstance(getapplicationcontext()). addtorequestqueue(jsonobjrequest); } here output.
[{"latest_steps":"2342","user_type":"leader","nickname":"cerberus 33","username":"cerberus_33@hotmail.com"}, {"latest_steps":"0","user_type":"leader","nickname":"lenovo", "username":"lenovo@gmail.com"}] steps: 2342 d/username﹕ cerberus_33@hotmail.com d/username﹕ cerberus_33@hotmail.com d/total﹕ steps: 0 d/username﹕ cerberus_33@hotmail.com d/username﹕ lenovo@gmail.com d/tag﹕ {"team_steps":"2342"} d/team steps﹕ 2342
i understand want user have ability click on own row. suppose have adapter build row of listview. in adapter override method boolean isenabled(int position) enabled desired row.
edit
in adapter add following
@override public boolean isenabled(int position) { if (position user row) { return true; } else { return false; } } this allow user clik on row return true (position user row). can use listview.setonitemclicklistener() usual.
edit
this both rows disabled now.
adapter = new customadapter(getapplication(), teamplayerslist){ @override public boolean isenabled(int position) { string currentname = teamplayerslist.get(position).getusername();//i'm not sur right getter should //the spirit compare name of user of row name of user want enabled if (currentname.equals(username)) { return true; } else { return false; } } }; } listview.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { toast.maketext(getapplicationcontext(),"it's me",toast.length_short).show(); } });
Comments
Post a Comment