Android开发:ListView用SimpleAdapter来实现自定义布局和点击

news/2024/11/24 21:47:55/

ListView用SimpleAdapter来实现自定义布局和点击

简单的ListView只能实现文字的列表显示。这里就不过多的介绍了,可自行百度找下。
而这次我介绍的是ListView用SimpleAdapter来实现自定义布局和点击。
一、首先要自定义一个列表的样式list_item_layout.xml文件。

<!--list_item_layout.xml-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><LinearLayoutandroid:layout_width="165dp"android:layout_height="120dp"android:paddingLeft="12dp"android:paddingRight="12dp"android:layout_marginTop="5dp"><!--自定义图片--><ImageViewandroid:id="@+id/imgv"android:layout_width="150dp"android:layout_height="120dp"android:src="@drawable/a0"></ImageView></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="120dp"android:orientation="vertical"android:paddingLeft="12dp"android:paddingRight="12dp"android:layout_marginTop="5dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="12dp"android:text="名称:"></TextView><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""></TextView></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="12dp"android:text="主演:"></TextView><TextViewandroid:id="@+id/zy"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""></TextView></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="12dp"android:text="导演:"></TextView><TextViewandroid:id="@+id/dy"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""></TextView></LinearLayout></LinearLayout>
</LinearLayout>

二、自定义完一个list_item的布局文件后,就要在主页面上添加ListView主键,来使用list_item布局。
在主页面添加ListView组件。

<!--注意一定要声明一个id,方便java文件查找到该组件-->
<ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="wrap_content"></ListView>

三、在主页面的控制器java文件里查找该组件,并添加第一步里的布局文件。
(1)声明需要的变量,这里声明的变量是死的,在真实的开发中是由后端传入的变量。

//模拟数据
private String[] name={"杀破狼2", "谍影重重5", "疯狂原始人", "叶问2", "赤道"},zy={"郑保瑞", "道格·里曼", " 柯克·德·米科", "叶伟信", "梁乐民/陆剑青"},dy={"吴京/托尼·贾/张晋",  "马特·达蒙/弗兰卡·波坦特" , "尼古拉斯·凯奇", " 甄子丹/洪金宝", "张学友/张家辉"};
//这是模拟的图片数据,报错的话需要引入图片放在drawable文件夹里
private int[] imgv=new int[]{R.drawable.a0,R.drawable.a1,R.drawable.a2,R.drawable.a3,R.drawable.a4};

(2)在onCreate方法里添加自定义组件并添加点击事件

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//找到ListViewListView listView=findViewById(R.id.lv);//声明一个列表映射List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();for (int i=0;i< name.length;i++){//声明一个映射将值添加的映射列表中Map<String,Object> listitem=new HashMap<String,Object>();listitem.put("imgv",imgv[i]);listitem.put("name",name[i]);listitem.put("zy",zy[i]);listitem.put("dy",dy[i]);list.add(listitem);}//声明SimpleAdapter将this,列表映射,自定义的布局文件,文件需要的值等等传给每个列表项中SimpleAdapter adapter=new SimpleAdapter(this,list,R.layout.list_item_layout,new String[]{"imgv","name","zy","dy"},new int[]{R.id.imgv,R.id.name,R.id.zy,R.id.dy});listView.setAdapter(adapter);//给每个列表项添加点击事件listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {//这里写具体点击的事件,下面写的是一个弹框Toast.makeText(MainActivity.this,name[i],Toast.LENGTH_SHORT).show();}});}

到这里就完成了SimpleAdapter自定义ListView布局和点击事件。


http://www.ppmy.cn/news/227899.html

相关文章

HTTP数字码意义

概要 当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时&#xff0c;IIS 返回一个表示该请求的状态的数字代码。该状态代码记录在IIS 日志中&#xff0c;同时也可能在 Web 浏览器或 FTP 客户端显示。状态代码可以指明具体…

今天懒一次 豆瓣电影Top250

今天不写代码&#xff0c;休息一下 1 import requests2 from lxml import etree3 from urllib import parse4 offset -255 i 06 url https://movie.douban.com/top250?start7 8 while offset < 225:9 offset 25 10 11 start_urls (urlstr(offset)) 12 h…

内存溢出,设置eclipse中的tomcat参数

1.双击servers &#xff0c;进入tomcat配置页面 2.点击 open lauch configuration ,进入tomcat配置页面&#xff0c;选择arguments 3.在VM arguments ,输入 set JAVA_OPTS-server -Xms768m -Xmx1024m -XX:PermSize256M -XX:MaxNewSize512m -XX:MaxPermSize512m -Djava.awt.he…

http400错误经历

一、先引用一下别的处理方案 Http的Get/Post请求带有特殊字符&#xff0c;400 Bad Request解决方案 今天做项目的时候&#xff0c;需要向服务器接口 传递 json参数&#xff0c;使用 apache 的 httpclient&#xff0c;当时没有对参数做特殊处理直接提交了&#xff0c;结果运行…

传瑞幸咖啡获新一轮融资,投前估值达20亿美元

11月6日消息&#xff0c;据路透社周二援引消息来源称&#xff0c;瑞幸咖啡正计划进行新一轮2亿至3亿美元融资&#xff0c;将公司估值提升至15亿到20亿美元。 投资界从接近瑞幸咖啡人士了解到&#xff0c;瑞幸咖啡目前投前估值20亿美元&#xff0c;不是实现15&#xff5e;20亿美…

11g空表无法导出

select analyze table || table_name || compute statistics; from user_tables; select analyze index || index_name || compute statistics; from user_indexes; 1.查询所有空表并分配segment&#xff0c;使用以下语句查询生成修改空表设置的SQL: select ‘alter tabl…

腾讯入局、估值超10亿美元,“野路子”瑞幸的三大增长法则

今年3月&#xff0c;一则由汤唯、张震出演的广告短片突然进入大众视野&#xff0c;并迅速在社交网络掀起热潮。在“这一杯&#xff0c;谁不爱”的广告轰炸下&#xff0c;luckincoffee&#xff08;瑞幸咖啡&#xff09;在短短10个月内&#xff0c;将线下门店开到了1400家&#x…

瑞幸咖啡宣布完成2亿美元B轮融资 投后估值22亿美元

雷帝网 乐天 12月12日报道 瑞幸咖啡&#xff08;luckin coffee&#xff09;今日宣布完成2亿美元B轮融资&#xff0c;投后估值22亿美元。愉悦资本、大钲资本、新加坡政府投资公司&#xff08;GIC&#xff09;、中金公司等参与了本次融资。 完成融资后&#xff0c;愉悦资本创始及…