problem: want match current user user chosen randomly list. however, error logcat gives:
java.lang.indexoutofboundsexception: invalid index 18, size 5 @ package.packagename.findingopponentactivity$1.done(findingopponentactivity.java:190) @ package.packagename.findingopponentactivity$1.done(findingopponentactivity.java:78)
the relevant lines, 190 , 78 respectively:
while (rand > musers.size() && musers.get(rand).hassameid(mcurrentuser)) { query.findinbackground(new findcallback<parseuser>() {
the full code
query.findinbackground(new findcallback<parseuser>() { @override public void done(list<parseuser> users, parseexception e) { setprogressbarindeterminatevisibility(false); if (e == null) { //success! public list<parseuser> musers = users; // case if there 1 user else if (musers.size() >= 2) { int rand = (int)(math.random()*20); while (rand > musers.size() && musers.get(rand).hassameid(mcurrentuser)) { rand = (int)(math.random()*20); } mopponentrelation.add(musers.get(rand)); mopponent = musers.get(rand); mcurrentuser.saveinbackground(new savecallback() { @override public void done(parseexception e) { if (e != null) { log.e(tag, e.getmessage()); } } });
i tried googling "how random user parse android" unable find helpful.
else if (musers.size() >= 2) { random random = new random(); int rand = random.nextint(musers.size()); while (musers.get(rand).hassameid(mcurrentuser)) { rand = random.nextint(musers.size()); } mopponentrelation.add(musers.get(rand)); mopponent = musers.get(rand); mcurrentuser.saveinbackground(new savecallback() { @override public void done(parseexception e) { if (e != null) { log.e(tag, e.getmessage()); } } });
Comments
Post a Comment