Parse Cloud上的更新数据未加载

时间:2016-04-24 11:02:36

标签: android parse-platform

我创建了一个评论类,用户可以在评论中评论他们的意见。但是当我发送写入时,新注释不会刷新注释我必须重新启动活动才能加载注释。我不明白怎么能实现。尝试在线参考很多教程,但我找不到解决方案。

我在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;
    }
}

0 个答案:

没有答案
相关问题