第二阶段:冲刺7(Android----热搜新闻界面优化完成)

引言:

之前的热搜界面画面过于丑陋,这次博客就是把上次界面进行美化,当然只是美了一点点。具体效果图如下

具体代码如下和之前的大同小异,只是加了几个修饰的界面的代码,我就给一下改动和增加的代码,其它没变的代码读者可以看之前的热搜界面:

MyAdapter
  
package com.example.hotsearch;

import android.app.AlertDialog;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
List<New_> allNews = new ArrayList<>();

public void setAllNews(List<New_> allNews) {
    this.allNews = allNews;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
    View itemViem = layoutInflater.inflate(R.layout.cell_normal, parent,false);
    return new MyViewHolder(itemViem);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    New_ new_ = allNews.get(position);
    if (position+1<=3){
        holder.textViewNumber.setTextSize(24);
        holder.textViewNumber.setTextColor(Color.parseColor("#ffcc0000"));
    }
    holder.textViewNumber.setText(String.valueOf(position+1));
    holder.editTextTitle.setText(new_.getTitle());
    holder.editTextTitle.setBackground(null);

// holder.editTextTitle.setEnabled(false);
holder.editTextTitle.setFocusable(false);
if (new_.getCommentCount()>10000){
holder.buttonHot.setText("爆");
holder.buttonHot.setBackgroundResource(R.drawable.btn_circle_bao);
}else if (new_.getCommentCount()>5000){
holder.buttonHot.setBackgroundResource(R.drawable.btn_circle_hot);
}
if (new_.getCommentCount()<5000){
holder.buttonHot.setVisibility(View.INVISIBLE);
}
//直接关闭掉RecyclerView的复用功能
holder.setIsRecyclable(false);
holder.editTextTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

        }
    });
    holder.textViewSearchNum.setText(String.valueOf(new_.getCommentCount()));
}

@Override
public int getItemCount() {
    return allNews.size();
}

//用来管理我们新建的ConstraintLayout
static class MyViewHolder extends RecyclerView.ViewHolder {
    TextView textViewNumber,textViewSearchNum;
    EditText editTextTitle;
    Button buttonHot;
    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        textViewNumber = itemView.findViewById(R.id.textViewNumber);
        editTextTitle = itemView.findViewById(R.id.editTextTitle);
        textViewSearchNum = itemView.findViewById(R.id.textViewSearchNum);
        buttonHot = itemView.findViewById(R.id.buttonHot);
    }
}

}

MainActivity
  
package com.example.hotsearch;

import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;

public class MainActivity extends AppCompatActivity {
NewsViewModel newsViewModel;
RecyclerView recyclerView;
MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final String[] url = {"http://192.168.0.101:8081/new/getTopNewsServlet"};
recyclerView = findViewById(R.id.RecyclerView);
myAdapter = new MyAdapter();
newsViewModel = ViewModelProviders.of(this).get(NewsViewModel.class);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(myAdapter);
newsViewModel.getJson(url[0]);
newsViewModel.getAllNews().observe(this, new Observer<List<New_>>() {
@Override
public void onChanged(List<New_> new_s) {
myAdapter.setAllNews(new_s);
myAdapter.notifyDataSetChanged();
}
});

}

@Override
protected void onDestroy() {
    super.onDestroy();
    newsViewModel.deleteWords();
}

}

btn_circle_bao.xml
  


<!-- 圆角的半径 -->
<corners android:radius="5dp"/>
<!-- 填充颜色 -->
<solid android:color="#B22222"/>
btn_circle_hot.xml
  


<!-- 圆角的半径 -->
<corners android:radius="5dp"/>
<!-- 填充颜色 -->
<solid android:color="#B22222"/>
原文地址:https://www.cnblogs.com/yangxiao-/p/12902213.html