我在使用指针查询用户数据时遇到问题,所以这是我的表(类):
_user
objectId<string> | username<string> | ...
帖子
objectId<string> | post<string> | writerId <pointer>(_User)
writerId包含帖子作者的用户ID。
我以这种方式显示自定义ListView中的帖子:
variables_posts = new ArrayList<VariablesPosts>();
ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
query.selectKeys(Arrays.asList("post"));
query.include("writerId");
on = query.find();
for (ParseObject post : on) {
VariablesPosts map = new VariablesPosts();
map.setWriter((String) post.get("username"));
map.setPost((String) post.get("post"));
variables_posts.add(map);}
问题是如果我放
,writerId是一个指针,而不是一个字符串map.setWriter((String) post.get("writerId"));
应用会崩溃,所以我在另一个帮助中使用了行query.include("writerId");
来直接获取用户名,但这一行:
map.setwriter((String) post.get("username"));
也崩溃了应用程序,当我删除它时,应用程序运行正常,所以在我的情况下如何通过指针writerId从User类中获取用户名?
答案 0 :(得分:0)
我不知道确切的Java语法,但是当你包含writerId然后想要获得该writerId用户的用户名时,你必须首先从Post的writerId获取User对象..类似于:
DictVectorizer.vocabulary
答案 1 :(得分:0)
指针列的命名有点误导,因为列不包含ID。你应该把它叫做 writer 。
要获取用户名,请执行以下操作:
query.include("writerId");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> postList, ParseException e) {
if (e == null) {
for (ParseObject post : postList) {
ParseObject writer = post.getParseObject("writerId");
String userName = writer.getString("username");
// .. (do whatever with userName)
}
} else {
Log.d("post", "Error: " + e.getMessage());
}
}
});