我有一个应用程序,你可以在其中投票,类似于Facebook喜欢或Reddit upvotes。你得到了照片。
好吧,我觉得这很简单。我在Parse中有一个数组列。对于获得upvote的每条消息,用户的名称都会添加到该特定帖子行中的数组中。除了我需要阻止用户无限次投票。这是我在阅读后尝试的内容
final ParseQuery<ParseObject> query3 = ParseQuery.getQuery("Messages");
query3.whereContains("objectId", objectId);
query3.whereContains("PostVoteUsers", mCurrentUser.getUsername());
query3.findInBackground(new FindCallback<ParseObject>() {
List<String> list11 = new ArrayList<String>();
public void done(List<ParseObject> messages, ParseException e) {
if (e == null) {
ParseObject p = messages.get(0);
if(p.getList("PostVoteUsers").contains(mCurrentUser.getUsername())==false)
list11 = p.getList("ParseVoteUsers");
if(list11.contains(mCurrentUser.getUsername()))
uparrow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ParseQuery<ParseObject> query2 = ParseQuery.getQuery("Messages");
query2.getInBackground(objectId, new GetCallback<ParseObject>() {
public void done(ParseObject messages, ParseException e) {
if (e == null) {
int votes = messages.getInt("PostVotes") + 1;
messages.add("PostVoteUsers", mCurrentUser.getUsername());
messages.put("PostVotes", votes);
postvote.setText("" + votes);
messages.saveInBackground();
}
}
});
}
});
}}});
它不起作用。我尝试的一切都让我得到一个nullpointer异常。我也试过了其他一些事情,但我想我可能会看错了问题。
在班级&#34;消息中,&#34;我有一个名为&#34; PostVoteUsers的数组列。&#34;
一劳永逸,我怎样才能知道用户是否在特定行的数组中?
答案 0 :(得分:0)
编写一个函数,确定用户是否在对象的数组中,类似于:
public boolean canBeLiked() {
String ids = getJSONArray("likedBy").toString();
if (ids.contains(ParseUser.getCurrentUser().getObjectId())) {
return true;
}
return false;
}
但要改变它对你有用。这个对我有用。获取ParseObject的JSONArray,使其成为一个字符串,然后在该字符串上调用contains(ParseUser.getCurrent()。getObjectId())。