如何将 ParseQuery 放在单独的 class 中并在 android 中的每个 activity 中调用此方法?

How to put ParseQuery in seperate class and call this method in every activity in android?

我是 android 的新手,一般编码

我的应用程序中有很多文本视图,所以我从解析中检索字符串并将其显示在文本视图中。

我正在使用以下解析查询

 ParseQuery<ParseObject> query=ParseQuery.getQuery("Topics");
    query.getInBackground("fRGt3oz8af", new GetCallback<ParseObject>(){
        public void done(ParseObject arg0, ParseException arg1) {

            if (arg1==null)
            {
                    subTopicName = arg0.getString("class_1");
                    textView.setText("" + subTopicName);

            }

            else
            {
                Log.d("topic", "Error: " + arg1.getMessage());
            }

}});

因为我有很多文本视图,所以我必须重复相同的代码来检索每个字符串。所以我试图避免代码冗余。

我的问题是如何将上述查询放在不同的 java class 中并调用该方法来检索每个字符串?或者是否有不同的方法来做到这一点。我以前从未在解析服务器上工作过,所以我真的很苦恼。

如有任何帮助,我们将不胜感激。

我建议创建观察者模式,并在实现接口回调函数时,您将能够在 UI 中收到通知。

即创建一个新的 class 扩展 ParseQuery 并覆盖 done 函数。在这个class中创建一个接口,在done函数里面调用接口函数。然后在你的 Activity class 中实现这个接口并更新 UI。

希望它能让您了解如何实现您的目标。

尝试这样的事情:

interface ParseCallback {
    void onComplete(String result);
    //todo onError() ?
}

protected void parse(ParseCallback callback) {
    ParseQuery<ParseObject> query = ParseQuery.getQuery("Topics");
    query.getInBackground("fRGt3oz8af", new GetCallback<ParseObject>() {
        public void done(ParseObject arg0, ParseException arg1) {
            if (arg1 == null) {
                String subTopicName = arg0.getString("class_1");
                if (subTopicName != null) {
                    callback.onComplete(subTopicName);
                }
            } else {
                Log.d("topic", "Error: " + arg1.getMessage());
            }
        }
    });
}

public void example() {
    parse(result -> {
        runOnUiThread(() -> {
            myTextView.setText(result);
        });
    });
}