我在我的应用程序中启用了标签标签功能,由于无法测试,因此我不确定如何实现它。每当我尝试运行它时,它就会崩溃。
所以我有Image类,它具有关系类型的字段(标签)。
HashTags将tagName作为字符串,将img作为指向Image类的指针。
这是我开始的代码。
final ParseQuery<ParseObject> query = ParseQuery.getQuery("Image");
final ParseQuery<ParseObject> query1 = ParseQuery.getQuery("HashTags");
final ParseObject tag = ParseObject.create("HashTags");
query.getInBackground(objectId, new GetCallback<ParseObject>() {
public void done(final ParseObject object, ParseException e) {
if (e == null) {
final String hashTag = add_tag.getText().toString().trim();
String text = add_tag.getText().toString().trim();
String regexPattern = "(#\\w+)";
Pattern p = Pattern.compile(regexPattern);
Matcher m = p.matcher(text);
while (m.find()) {
final String hashtag = m.group(1);
if (hashtag.trim().matches("")) {
object.put("location", point);
object.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
done = true;
finish();
}
}
});
} else {
query1.whereEqualTo("name", hashtag);
当[query1.whereEqualTo(“ name”,hashtag);]在最后一行出现问题时
我认为,因为标签不是单一值,所以它不仅仅是一个标签。因此会引发该错误。
有什么建议如何解决吗?
最佳答案
您为什么不只向该初始GetQuery添加一个侦听器,然后将其余的代码放入其中,以便在完成时可以执行它。那应该解决并发查询。
像这样
query.getInBackground(new GetCallbacks(){
onComplete(){
final ParseQuery<ParseObject> query1 = ParseQuery.getQuery("HashTags");
query1.getInBackground(new GetCallbacks(){
onComplete(){
//The rest of the code.
}
});
)
我目前没有任何项目可以使代码漂亮,但这是它的要旨。当您尝试查看其数据时,听起来好像query1仍在执行,您应该将getInBackground匿名内部类链接在一起。这样,您可以确保在query1完成或失败后执行其余代码。