我在我的应用程序中启用了标签标签功能,由于无法测试,因此我不确定如何实现它。每当我尝试运行它时,它就会崩溃。

所以我有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完成或失败后执行其余代码。

08-18 12:20