我是靠谱客的博主 称心火,最近开发中收集的这篇文章主要介绍分别使用ListView和RecylerView显示动物图片、名称以及简介信息RecylerViewListView,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • RecylerView
    • 放置界面控件
    • 创建Item界面
    • 编写页面交互代码
  • ListView
    • 放置界面控件
    • 创建Item界面
    • 编写页面交互代码

RecylerView

放置界面控件

放置一个RecylerView控件,用于显示一个列表。

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</androidx.recyclerview.widget.RecyclerView>

创建Item界面

每一个Item上都显示动物的照片、名称和信息

<ImageView
    android:id="@+id/iv_icon"
    android:layout_margin="10dp"
    android:src="@mipmap/ic_launcher"
    android:layout_width="100dp"
    android:layout_height="100dp">
</ImageView>
<TextView
    android:id="@+id/tv_title"
    android:layout_below="@id/iv_icon"
    android:textSize="25dp"
    android:layout_centerHorizontal="true"
    android:text="text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</TextView>
<TextView
    android:id="@+id/tv_info"
    android:layout_below="@id/tv_title"
    android:layout_margin="10dp"
    android:text="text1"
    android:maxLines="5"
    android:ellipsize="end"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</TextView>

编写页面交互代码

在MainActivity中通过逻辑代码对RecyclerView控件进行数据适配并将数据显示到列表界面上

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private String[] names = { "小猫", "哈士奇", "小黄鸭","小鹿","老虎"};
    private int[]  icons= { R.drawable.cat,R.drawable.siberiankusky,
            R.drawable.yellowduck,R.drawable.fawn, R.drawable.tiger};
    private String[] introduces = {
            "猫,属于猫科动物,分家猫、野猫,是全世界家庭中较为广泛的宠物。",
            "西伯利亚雪橇犬,常见别名哈士奇,昵称为二哈。",
            "鸭的体型相对较小,颈短,一些属的嘴要大些。腿位于身体后方,因而步态蹒跚。",
            "鹿科是哺乳纲偶蹄目下的一科动物。体型大小不等,为有角的反刍类。",
            "虎,大型猫科动物;毛色浅黄或棕黄色,满有黑色横纹;头圆、耳短,耳背面黑色,中央有一白斑甚显著;四肢健壮有力;尾粗长,具黑色环纹,尾端黑色。"
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView=findViewById(R.id.recyclerView);

        recyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this,2));
        recyclerView.setAdapter(new MyAdapter());
    }

    class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder>{
        @NonNull
        @Override
        //获取itemView的视图对象,并把视图对象传递给viewholder
        public MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View v=View.inflate(MainActivity.this,R.layout.item_layout,null);
            MyHolder myHolder=new MyHolder(v);
            return myHolder;
        }
        @Override
        //将各类值绑定给holder对象
        public void onBindViewHolder(@NonNull MyHolder holder, int position) {
            holder.iv_icon.setImageResource(icons[position]);
            holder.tv_info.setText(introduces[position]);
            holder.tv_title.setText(names[position]);
        }
        @Override
        public int getItemCount() {
            return names.length;
        }

        class MyHolder extends RecyclerView.ViewHolder{
            private TextView tv_title,tv_info;
            private ImageView iv_icon;

            public MyHolder(@NonNull View itemView) {
                super(itemView);
                tv_title=itemView.findViewById(R.id.tv_title);
                tv_info=itemView.findViewById(R.id.tv_info);
                iv_icon=itemView.findViewById(R.id.iv_icon);
            }
        }
    }
}

在这里插入图片描述

ListView

放置界面控件

<ListView
    android:id="@+id/lv"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:listSelector="@color/C_group_2">
</ListView>

创建Item界面

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:padding="20dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/iv_icon"
        android:layout_margin="10dp"
        android:src="@mipmap/ic_launcher"
        android:layout_width="100dp"
        android:layout_height="100dp">
    </ImageView>
    <TextView
        android:id="@+id/tv_title"
        android:layout_toRightOf="@id/iv_icon"
        android:layout_alignTop="@id/iv_icon"
        android:layout_margin="10dp"
        android:textSize="25dp"
        android:text="text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </TextView>
    <TextView
        android:id="@+id/tv_info"
        android:layout_toRightOf="@id/iv_icon"
        android:layout_below="@id/tv_title"
        android:layout_margin="10dp"
        android:text="text1"
        android:maxLines="2"
        android:ellipsize="end"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </TextView>
</RelativeLayout>

编写页面交互代码

public class MainActivity extends AppCompatActivity {
    private ListView listView;
    private String[] names = { "小猫", "哈士奇", "小黄鸭","小鹿","老虎"};
    private int[]  icons= { R.drawable.cat,R.drawable.siberiankusky,
            R.drawable.yellowduck,R.drawable.fawn, R.drawable.tiger};
    private String[] introduces = {
            "猫,属于猫科动物,分家猫、野猫,是全世界家庭中较为广泛的宠物。",
            "西伯利亚雪橇犬,常见别名哈士奇,昵称为二哈。",
            "鸭的体型相对较小,颈短,一些属的嘴要大些。腿位于身体后方,因而步态蹒跚。",
            "鹿科是哺乳纲偶蹄目下的一科动物。体型大小不等,为有角的反刍类。",
            "虎,大型猫科动物;毛色浅黄或棕黄色,满有黑色横纹;头圆、耳短,耳背面黑色,中央有一白斑甚显著;四肢健壮有力;尾粗长,具黑色环纹,尾端黑色。"
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=findViewById(R.id.lv);
        listView.setAdapter(new MyAdapter());
    }

    class MyAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return names.length;
        }

        @Override
        public Object getItem(int position) {
            return names[position];
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder viewHolder=null;
            if (convertView==null){
                convertView=View.inflate(MainActivity.this,R.layout.item_layout,null);
                viewHolder=new ViewHolder();
                viewHolder.iv_icon=convertView.findViewById(R.id.iv_icon);
                viewHolder.tv_info=convertView.findViewById(R.id.tv_info);
                viewHolder.tv_title=convertView.findViewById(R.id.tv_title);
                convertView.setTag(viewHolder);
            }else {
                viewHolder=(ViewHolder) convertView.getTag();
            }
            viewHolder.tv_title.setText(names[position]);
            viewHolder.tv_info.setText(introduces[position]);
            viewHolder.iv_icon.setImageResource(icons[position]);
            return convertView;
        }

        public class ViewHolder{
            TextView tv_title,tv_info;
            ImageView iv_icon;
        }
    }
}

在这里插入图片描述

最后

以上就是称心火为你收集整理的分别使用ListView和RecylerView显示动物图片、名称以及简介信息RecylerViewListView的全部内容,希望文章能够帮你解决分别使用ListView和RecylerView显示动物图片、名称以及简介信息RecylerViewListView所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部