我创建了一个评论类,用户可以在评论中评论他们的意见。但是当我发送写入时,新注释不会刷新注释我必须重新启动活动才能加载注释。我不明白怎么能实现。尝试在线参考很多教程,但我找不到解决方案。
我在onCreate中调用了这个RemoteDataTask方法
private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
parseCommentsList = new ArrayList<>();
try {
ParseQuery<ParseObject> query = new ParseQuery<>(
"Comments");
query.whereEqualTo("videoId", videoID);
query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE);
query.orderByDescending("createdAt");
ob = query.find();
for (ParseObject country : ob) {
ParseComments map = new ParseComments();
ParseFile dp = (ParseFile)country.get("profilepictures");
String comments = country.getString("Comment");
String commentUser = country.getString("senderName");
map.setComments(comments);
map.setProfileName(commentUser);
map.setProfilePic(dp.getUrl());
parseCommentsList.add(map);
}
} catch (ParseException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
listView = (ListView) findViewById(R.id.comments_list);
adapter = new CommentsAdapter(SingleVideoView.this,
parseCommentsList);
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
以下是评论的适配器
public class CommentsAdapter extends BaseAdapter {
// Declare Variables
Context context;
LayoutInflater inflater;
private List<ParseComments> parseCommentsList = null;
private ArrayList<ParseComments> arraylist;
public CommentsAdapter(Context context,
List<ParseComments> parseCommentsList) {
this.context = context;
this.parseCommentsList = parseCommentsList;
inflater = LayoutInflater.from(context);
this.arraylist = new ArrayList<ParseComments>();
this.arraylist.addAll(parseCommentsList);
}
public class ViewHolder {
TextView comment;
TextView name;
ImageView profilePic;
}
@Override
public int getCount() {
return parseCommentsList.size();
}
@Override
public Object getItem(int position) {
return parseCommentsList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(final int position, View view, ViewGroup parent) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.comments_layout, null);
// Locate the TextViews in listview_item.xml
holder.comment = (TextView) view.findViewById(R.id.comments);
holder.name = (TextView)view.findViewById(R.id.name);
holder.profilePic = (ImageView)view.findViewById(R.id.profilePic);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
// Set the results into TextViews
holder.comment.setText(parseCommentsList.get(position).getComments());
holder.name.setText(String.valueOf(parseCommentsList.get(position).getProfileName()));
Picasso.with(context)
.load(parseCommentsList.get(position).getProfilePic())
.transform(new CircleTransform())
.resize(70,70)
.into(holder.profilePic);
return view;
}
}