团队开发冲刺第十天(实现页面展示评论数与点赞数)
今天实现的功能为:页面展示每条数据的评论数与点赞数,大部分的代码是在服务器端的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);
}
}
}