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"/>
    
  • 相关阅读:
    GhostBSD 3.0RC3,基于GNOME的FreeBSD
    Nagios 3.4.3 发布,企业级监控系统
    Jolokia 1.0.6 发布, JMX远程访问方法
    微软希望开发人员不要使 WebKit 成为新版 IE6
    Kwort Linux 3.5 正式版发布
    EJDB 1.0.24 发布,嵌入式 JSON 数据库引擎
    Pale Moon 15.3 Firefox“苍月”优化版发布
    Galera Load Balancer 0.8.1 发布
    SmartSVN V7.5 正式发布
    PostgresQL建立索引如何避免写数据锁定
  • 原文地址:https://www.cnblogs.com/yangxiao-/p/12902213.html
Copyright © 2011-2022 走看看