android - 未从回调方法更新视图
问题描述
我正在从数据库中获取数据。当我打开活动时,我的视图才第一次更新。然后当我再次打开活动时,我的视图没有更新。(活动再次开始,因此onCreate()
再次被调用并且所有设置都相同)。如果我getText()
在设置文本后,我会在 log 中获得正确的值,但 view 中没有显示任何内容。
这是我的代码片段:
//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);
}
//这里我设置listner以及加载数据。
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);
}
推荐阅读
- mysql - 如何在 mySQL 中创建存储过程而不声明所有参数?
- android - Spinner 未显示字符串列表中的选项列表
- html - 如何将 flex 内容移动到 div 顶部?
- latex - 如何使用乳胶读取文件的所有内容,包括一些行有“%”
- serial-port - 为什么我的 pyserial 端口在 if 语句中不起作用?
- java - 对象的内存分配(配置文件“android”) - Android Studio
- ruby-on-rails-5 - 无法使用 rack-cors 在另一个域上呈现 iframe
- sql-server - 删除对 SQL Server 中表的所有“隐藏”引用
- entity-framework - 如何删除mm表中的记录
- python - 如何过滤引用以避免每次执行后出现重复?