android - View 未通过回调方法更新

标签 android database sqlite listener

我正在从数据库中获取数据。我的 View 仅在我第一次打开 Activity 时更新。然后,当我再次打开 Activity 时,我的 View 不会更新。( Activity 再次启动,因此再次调用 onCreate() 并且所有设置都相同)。 如果我在设置文本后getText(),我会在日志中获得正确的值,但 View 中不会显示任何内容

这是我的代码 fragment :

//My Call Back method    
@Override
    public void onRatingDataLoaded(ReviewJsonModel review) {

        int ratingCount = 0, ownRating = 0;
        String averageRating = "0";
        if (review != null) {
            ratingCount = review.review_count;
            DecimalFormat format = new DecimalFormat("##.00");

            averageRating = format.format(review.rating);
            if (review.ownreviews != null) {

                try {
                    ownRating = Integer.parseInt(review.ownreviews.rating);
                } catch (NumberFormatException e) {
                    e.printStackTrace();
                }                
            }
        } else {
            // do something
        }

        mTotalRatingCount.setText(String.format(getResources().getString(R.string.review_count), ratingCount));
        mAverageRating.setText(averageRating);

// Log.v("LoggingReview", mTotalRatingCount.getText().toString().trim);
        myRating.setRating(ownRating);        
    }

//这里我设置监听器并加载数据。

public void loadReviewData(RatingDataLoadListener listener, int destinationId) {
        if (mDataLoadListener == null)
            mDataLoadListener = listener;

        new getReviews().execute(destinationId);

    }

接下来是我的异步任务

private class getReviews extends AsyncTask<Integer, Void, ReviewJsonModel> {

        @Override
        protected ReviewJsonModel doInBackground(Integer... integers) {
            Cursor appCursor = mRatingApi.getDestinationReview(integers[0]);

            ReviewJsonModel mReviewData = new ReviewJsonModel();
            if (appCursor != null && appCursor.getCount() > 0) {
                appCursor.moveToFirst();
                while (!appCursor.isAfterLast()) {
                    mReviewData = getDocument(appCursor);
                    appCursor.moveToNext();

                }
                appCursor.close();
            }

            return mReviewData;
        }

        @Override
        protected void onPostExecute(ReviewJsonModel result) {
            super.onPostExecute(result);

            if (mDataLoadListener != null)
                mDataLoadListener.onRatingDataLoaded(result);
        }
    }

找不到问题原因。任何帮助表示赞赏。

最佳答案

似乎存在回调问题,请尝试下面

public void loadReviewData(RatingDataLoadListener listener, int destinationId) {
    mDataLoadListener = listener; 
    new getReviews().execute(destinationId); 
}

关于android - View 未通过回调方法更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51569539/

相关文章:

php - MySQL char 接受不固定的值

java - 优化数据库插入java

SQL:尝试访问找不到的表时,Try/Catch 不会捕获错误

android - 将参数从android传递到.net web服务

java - android - 在 webview 应用程序中打开外部链接

android - 如何通过 CURL 向所有设备发送 Firebase 通知?

java - 如何从 sqlite 中取回错误解码的字符串

android - 我应该用什么替换已弃用的 Facebook InterstitialAd setAdListener?

iOS:无法弄清楚如何编写正确的方法

perl - 如何在 Perl 中使用 DBI 按顺序获取列名和行数据?