zoukankan      html  css  js  c++  java
  • 团队开发冲刺第十天(实现页面展示评论数与点赞数)

     

    今天实现的功能为:页面展示每条数据的评论数与点赞数,大部分的代码是在服务器端的servlet请求编写。

    遇到困难:目前还有bug,就是每次刷新后点赞数与评论数不符合,切换一级入口会使数据丢失,目前已经实现页面的点赞数与评论数的基本展示,明天攻克这些小bug

    明天任务:把bug修复,有时间将搜索框大概功能做出来。

    package com.example.newbsh.UI.home.hometype.news.adapter;
    
    import android.annotation.SuppressLint;
    import android.content.Context;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.util.Log;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.inputmethod.InputMethodManager;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import androidx.annotation.NonNull;
    import androidx.navigation.Navigation;
    import androidx.recyclerview.widget.RecyclerView;
    
    import com.bumptech.glide.Glide;
    import com.bumptech.glide.request.RequestOptions;
    import com.example.newbsh.HttpUtil.HttpUtil;
    import com.example.newbsh.R;
    import com.example.newbsh.UI.home.hometype.news.shownews.ShowNewsActivity;
    import com.example.newbsh.UI.home.hometype.news.shownews.comment.BlogComment;
    
    import org.json.JSONException;
    import org.json.JSONObject;
    import org.json.JSONArray;
    
    import java.lang.ref.WeakReference;
    
    public class NewsAdapter extends RecyclerView.Adapter<NewsAdapter.MyViewHolder> {
       JSONArray jsonArray=new JSONArray();
        private View itemview;
        private String numcomment,numsupport;
        public void setJsonArray(JSONArray jsonArray) {
            this.jsonArray = jsonArray;
        }
    
        @NonNull
        @Override
        public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            LayoutInflater layoutInflater=LayoutInflater.from(parent.getContext());
            itemview=layoutInflater.inflate(R.layout.cell_news,parent,false);
            return new MyViewHolder(itemview);
        }
        /*
        展示评论的数据
         */
        private void showComment(String title) {
    
            new Thread(new Runnable() {
                @Override
                public void run() {
                    String reqdata="http://39.97.181.86/BaiXiaoSheng/newscomment?title="+title;
                    numcomment =String.valueOf(HttpUtil.sendPost(reqdata,""));
                    Log.d("data", "评论:"+ numcomment);
                }
            }).start();
            Log.d("data", "评论:"+ numcomment);
        }
        /*
        展示点赞的数据
         */
        private void showSupport(String title) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    String reqdata="http://39.97.181.86/BaiXiaoSheng/newssupport?title="+title;
                    numsupport =String.valueOf(HttpUtil.sendPost(reqdata,""));
                    Log.d("data", "点赞:"+ numsupport);
                }
            }).start();
            Log.d("data", "点赞:"+ numsupport);
        }
    
        @Override
        public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    
            JSONObject bean= null;
            try {
                bean = jsonArray.getJSONObject(position);
                holder.textViewTitle.setText(bean.getString("title"));
                holder.textViewJianJie.setText(bean.getString("doc"));
                holder.textViewClicknumber.setText(bean.getString("click"));
                holder.textViewDatetime.setText(bean.getString("date"));
                String []urls=bean.getString("url").split(" ");
                showSupport(bean.getString("title"));
                showComment(bean.getString("title"));
                holder.textViewnewscomment.setText(numcomment);
                holder.textViewnewssupport.setText(numsupport);
                numcomment="0";numsupport="0";
                RequestOptions options = new RequestOptions()
                        .error(R.drawable.error)
                        .placeholder(R.drawable.loading);
                if(urls.length!=0) {
                    for(int i=0;i<urls.length;i++)
                    {
                        if(!urls[i].equals(" "))
                        {
                            Log.i("url",urls[i]);
                            Glide.with(itemview)
                                    .load(urls[i])
                                    .apply(options)
                                    .into(holder.photo);
                            break;
                        }
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Bundle bundle=new Bundle();
                    try {
                        bundle.putString("title", jsonArray.getJSONObject(position).getString("title"));
                        bundle.putString("doc",jsonArray.getJSONObject(position).getString("doc"));
                        bundle.putString("click",jsonArray.getJSONObject(position).getString("click"));
                        bundle.putString("date",jsonArray.getJSONObject(position).getString("date"));
                        bundle.putString("url",jsonArray.getJSONObject(position).getString("url"));
                        bundle.putString("authorname",jsonArray.getJSONObject(position).getString("authorname"));
                        bundle.putString("authorurl",jsonArray.getJSONObject(position).getString("authorurl"));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    Navigation.findNavController(v).navigate(R.id.action_home_to_showNewsActivity,bundle);
                }
            });
        }
    
        @Override
        public int getItemCount() {
            return jsonArray.length();
        }
    
        static class MyViewHolder extends RecyclerView.ViewHolder{
            TextView textViewTitle,textViewJianJie,textViewDatetime,textViewClicknumber,textViewnewssupport,textViewnewscomment;
            ImageView photo;
            public MyViewHolder(@NonNull View itemView) {
                super(itemView);
                textViewTitle=itemView.findViewById(R.id.NewsTitle);
                textViewJianJie=itemView.findViewById(R.id.jianjie);
                textViewClicknumber=itemView.findViewById(R.id.clicknumber);
                textViewDatetime=itemView.findViewById(R.id.datetime);
                textViewnewscomment=itemView.findViewById(R.id.newscomment);
                textViewnewssupport=itemView.findViewById(R.id.newsupport);
                photo=itemView.findViewById(R.id.userphoto);
            }
        }
    }
  • 相关阅读:
    python socket 二进制
    全面介绍内存管理机制
    glog修改
    mysql c api
    http twisted
    IOCP 模型1
    IOCP 模型2 AcceptEx
    python
    Python Twisted
    Java 拾遗
  • 原文地址:https://www.cnblogs.com/xiaofengzai/p/12776473.html
Copyright © 2011-2022 走看看