zoukankan      html  css  js  c++  java
  • 第二阶段:冲刺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"/>
    
  • 相关阅读:
    Gitlab_ansible_jenkins三剑客⑥Jenkins和ansible集成
    Gitlab_ansible_jenkins三剑客⑤jenkins Pipeline-job的使用
    Gitlab_ansible_jenkins三剑客④jenkins安装图解及freestyle的简单使用
    Gitlab_ansible_jenkins三剑客③Ansible的安装及使用
    Gitlab_ansible_jenkins三剑客②Gitlab的后台管理
    Gitlab_ansible_jenkins三剑客①搭建gitlab的详细步骤
    windows2012服务器中安装php7+mysql5.7+apache2.4环境
    07binlog日志介绍
    open()系统调用的实现
    文件系统中的目录查找
  • 原文地址:https://www.cnblogs.com/yangxiao-/p/12902213.html
Copyright © 2011-2022 走看看