Android listview使用[通俗易懂]

Android listview使用[通俗易懂]安卓listview使用MainActivitypublicclassMainActivityextendsAppCompatActivity{privateListViewlistView;privateMyAdapteradapter;privateList<Person>list;@Overridepro…

大家好,又见面了,我是你们的朋友全栈君。

安卓listview使用

MainActivity

public class MainActivity extends AppCompatActivity { 
   
    private ListView listView;
    private MyAdapter adapter;
    private List<Person> list;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=findViewById(R.id.listview);
        //给集合赋值
        getData();
        //初始化adapter
        adapter  = new MyAdapter(this,list);
        //给listview设置适配器
        listView.setAdapter(adapter);
        //listview的item点击监听
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
   
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
   
                Person person = list.get(position);
                Toast.makeText(MainActivity.this,person.mContent,Toast.LENGTH_SHORT).show();
            }
        });
    }

	//手动给集合赋值数据
    private List<Person> getData(){ 
   
        list = new ArrayList<Person>();
        for(int i=1;i<=10;i++){ 
   
         Person p = new Person(R.drawable.ic_launcher,i+"","第"+i);
         list.add(p);
        }
        return list;
    }
}

MyAdapter

public class MyAdapter extends BaseAdapter { 
   
    private Context context;
    private List<Person> list;

	//构造函数,给集合赋值
    public MyAdapter(Context context,List<Person> list){ 
   
        this.context=context;
        this.list=list;
    }

    private class ViewHolder{ 
   
        ImageView imageView;
        TextView title;
        TextView content;
    }

    @Override
    public int getCount() { 
   
    	//listview中显示的个数
        return list.size();
    }

    @Override
    public Object getItem(int position) { 
   
        return list.get(position);
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) { 
   
        ViewHolder viewHolder;
        //判断界面是否有缓存
        if(convertView==null){ 
   
            viewHolder= new ViewHolder();
            //初始化item的控件
            convertView= LinearLayout.inflate(parent.getContext(), R.layout.item, null);
            viewHolder.imageView=convertView.findViewById(R.id.imageview);
            viewHolder.title=convertView.findViewById(R.id.title);
            viewHolder.content=convertView.findViewById(R.id.content);
            convertView.setTag(viewHolder);
        }else{ 
   
            viewHolder=(ViewHolder)convertView.getTag();
        }
        //给item控件赋值
        Person person = list.get(position);
        viewHolder.imageView.setBackgroundResource(person.mPicture);
        viewHolder.title.setText(person.mTitle);
        viewHolder.content.setText(person.mContent);

        return convertView;
    }

}

activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <!--divider属性设置item间距-->
    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:dividerHeight="10dp"></ListView>

</LinearLayout>

效果图
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160577.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • CSS简单入门

    CSS简单入门

    2021年10月2日
  • grub2引导u盘启动_grub4dos怎么进入系统

    grub2引导u盘启动_grub4dos怎么进入系统grub引导BT3硬盘启动                   阿太080611 一、这里使用grub引导程序,关于grub引导程序,这里不多说,其是一个很强的系统引导器,可以区分和引导各种系统.这里提供一个grubfordos安装程序;解压后copy到c:/boot/grub/目录下,并copymenu.lst和chinese目录中的文件grldr文件到C:/.

    2022年10月1日
  • 六大主流大数据采集平台架构分析[通俗易懂]

    六大主流大数据采集平台架构分析[通俗易懂]日志收集的场景DT时代,数以亿万计的服务器、移动终端、网络设备每天产生海量的日志。中心化的日志处理方案有效地解决了在完整生命周期内对日志的消费需求,而日志从设备采集上云是始于足下的第一步。随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台:ApacheFlumeFluentdLogstashChukwaScribeSplunkForwar

    2022年6月10日
  • 排序算法:桶排序、计数排序、基数排序

    排序算法:桶排序、计数排序、基数排序

    2021年10月5日
  • opencv边界填充_opencv边缘提取

    opencv边界填充_opencv边缘提取目标:将区域内的小洞填充因为c++算法还不会,决定先用matlab试试,找到一个imfill可以实现区域的填充Matlab里的实现clearall;clc;I=im2bw(imread(‘E:\免疫组化\pic\tt.bmp’));figure,imshow(I);I1=imfill(I,’holes’);figure,imshow(I1);效果图但是二值免疫图的效果就不太理想原因也不是很清楚?…

    2022年9月4日
  • 10分钟让你掌握Linux常用命令(+1.4万+++收藏)

    10分钟让你掌握Linux常用命令(+1.4万+++收藏)1、目录操作。2、文件操作。3、文件内容操作。4、压缩和解压缩。5、日志查看。6、Linux下文件的详细信息。7、常用的docker容器的命令。8、其他命令。

    2022年6月16日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号