列表视图ListView
依然是一个listView的Java文件
1 public class ListViewActivity extends Activity {
2 private ListView lv1;
3 @Override
4 protected void onCreate(@Nullable Bundle savedInstenceState) {
5
6 super.onCreate(savedInstenceState);
7 setContentView(R.layout.activity_listview);
8 lv1=findViewById(R.id.lv_1);
9 lv1.setAdapter(new MylistAdapter(ListViewActivity.this));
10 lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
11 @Override
12 public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
13 Toast.makeText(ListViewActivity.this, "点击pos:"+i, Toast.LENGTH_SHORT).show();
14 }
15 });
16 lv1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
17 @Override
18 public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
19 Toast.makeText(ListViewActivity.this, "长按pos:"+i, Toast.LENGTH_SHORT).show();
20 return true;//这里如果返回false的话,处理完长按事件后还会处理点击事件,也就是说会弹出两个提示框,为了让他只显示一个对话框改为true
21 }
22 });
23 }
24 }
对应的activity_listview.xml文件
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 android:layout_width="match_parent"
3 android:layout_height="match_parent">
4
5 <ListView
6 android:id="@+id/lv_1"
7 android:layout_width="match_parent"
8 android:layout_height="wrap_content"
9 android:listSelector="@drawable/list_item"/>
10 <!-- 这里listSelector设置的是点击样式,效果-->
11
12 </LinearLayout>
其中设置的点击效果xml文件为
1 <selector xmlns:android="http://schemas.android.com/apk/res/android">
2 <item android:state_pressed="true" android:drawable="@color/purple_200"/>
3 <item android:drawable="@color/touming"/>
4 </selector>
这里面state_pressed和state_checked是不一样的,checked是选中的意思,pressed是按压时候的效果,注意区分。
然后layout_list_item.xml文件是设置list中每一个元素的样式结构的文件
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 android:layout_width="match_parent"
3 android:layout_height="match_parent"
4 android:orientation="horizontal"
5 android:padding="10dp">
6 <ImageView
7 android:id="@+id/imv"
8 android:layout_width="100dp"
9 android:layout_height="100dp"
10 android:scaleType="centerCrop"
11 android:background="#000"/>
12 <LinearLayout
13 android:layout_width="match_parent"
14 android:layout_height="wrap_content"
15 android:orientation="vertical"
16 android:paddingLeft="10dp">
17 <TextView
18 android:id="@+id/tv_title"
19 android:layout_width="wrap_content"
20 android:layout_height="wrap_content"
21 android:text="你好你好"
22 android:textColor="@color/black"
23 android:textSize="20sp"/>
24 <TextView
25 android:id="@+id/tv_time"
26 android:layout_width="wrap_content"
27 android:layout_height="wrap_content"
28 android:text="2022-01-28"
29 android:textColor="@color/greydrak"
30 android:paddingTop="10dp"
31 android:textSize="17sp"/>
32 <TextView
33 android:id="@+id/tv_content"
34 android:layout_width="wrap_content"
35 android:layout_height="wrap_content"
36 android:text="你好,我是内容"
37 android:textColor="@color/greydrak"
38 android:paddingTop="10dp"
39 android:textSize="17sp"/>
40 </LinearLayout>
41 </LinearLayout>
然后建立MyListAdapter的Java文件来定义列表中每个元素的具体结构的值:
1 public class MylistAdapter extends BaseAdapter {
2 private Context context;
3 private LayoutInflater layoutInflater;
4 public MylistAdapter(Context context){
5 this.context=context;
6 layoutInflater=LayoutInflater.from(context);
7 }
8 @Override
9 public int getCount() {
10 return 10;
11 }//列表长度
12
13 @Override
14 public Object getItem(int i) {
15 return null;
16 }//不怎么用
17
18 @Override
19 public long getItemId(int i) {
20 return 0;
21 }//不怎么用
22
23 static class ViewHolder{
24 public ImageView imageview;
25 public TextView tvTitle,tvTime,tvContent;
26 }
27
28 @Override
29 public View getView(int i, View view, ViewGroup viewGroup) {
30 ViewHolder holder=null;
31 if(view==null){
32 view=layoutInflater.inflate(R.layout.layout_list_item,null);
33 holder=new ViewHolder();
34 holder.imageview=view.findViewById(R.id.imv);
35 holder.tvTitle=view.findViewById(R.id.tv_title);
36 holder.tvContent=view.findViewById(R.id.tv_content);
37 holder.tvTime=view.findViewById(R.id.tv_time);
38 view.setTag(holder);
39 }else{
40 holder= (ViewHolder) view.getTag();
41 }
42 //给控件赋值
43 holder.tvTitle.setText("我是大标题");
44 holder.tvTime.setText("2066-06-6");
45 holder.tvContent.setText("说点啥呢啥呢");
46 Glide.with(context).load("https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png").into(holder.imageview);
47 return view;
48 }
49 }
列表视图ListView的更多相关文章
- React-Native基础_5.列表视图ListView
列表视图ListView 用来显示垂直滚动列表,需要指定两个东西,1 数据的来源 dataSource,2 渲染列表的条目布局 rendRow 'use strict' import React, { ...
- Android 自学之列表视图ListView和ListActivity
ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项. 创建ListView有两种方式: 直接使用ListView创建. 让Activity继承ListActivity ...
- Android——列表视图(ListView)
列表视图是android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表项.在android中有两种方法向屏幕中添加列表视图:一种是直接使用ListView组件创建:另外一种是让Activ ...
- 滚动视图、列表视图[ListView、SimpleAdapter类]
滚动视图 <ScrollView android: layout_width="fill_parent" android: layout_height="fill_ ...
- andorid 列表视图 ListView 之BaseAdapter
.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android=&qu ...
- 列表视图(ListView和ListActivity)
在ListView中显示网络图片 ImageView 类虽然有一个 setImageUri 方法,但不能直接接受一个由网络地址生成的uri作为参数从而显示图片,我们只好使用其 setImageBitm ...
- andorid 列表视图 ListView 之ArrayAdapter
activity_ui3.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...
- Android——列表视图 ListView(三)BaseAdapter
activity_activitybase.xml <?xml version="1.0" encoding="utf-8"?> <ListV ...
- Android——列表视图 ListView(二)SimpleAdapter
SimpleAdapter:可显示文字加图片 activity_activitysimple.xml <?xml version="1.0" encoding="u ...
- React-Native基础_5.列表视图ListView 网络数据展示
//获取网络数据 并用列表展示 豆瓣Top250 api /** * Sample React Native App * https://github.com/facebook/react-nativ ...
随机推荐
- TCP Wrappers
TCP Wrappers 是 RHEL 7 系统中默认启用的一款流量监控程序,它能够根据来访主机的地址与本机的目标服务程序作出允许或拒绝的操作.换句话说,Linux 系统中其实有两个层面的防火墙,第一 ...
- 微信小程序之多选功能
思路:把向得到的数组中添加一个布尔值,默认都为false,然后通过数组的映射功能把选中的布尔值,存储到数组中,在组件属性中,用三元运算符做判断即可 data:{ sampleArray: [{ id: ...
- Mysql一个主一备
Mysql主从复制 -- 一主一备 主从复制原理: Mysql的主从复制是mysql本身自带的一个功能,不需要额外的第三方软件可以实现,其复制功能并不是copy文件实现的,而是借助binlog日志文件 ...
- Nginx http重定向https
SSL证书申请的腾讯的,配置好证书后,直接监听80端口转发443就ok了 转发语句:rewrite ^/(.*) https://$server_name:443$request_uri? perma ...
- vagrant的box哪里下?镜像在哪儿找?教你在vagrant官网下载各种最新.box资源
原文:vagrant的box哪里下?镜像在哪儿找?教你在vagrant官网下载各种最新.box资源 一.进入vagrant官网 https://www.vagrantup.com/ 二.点击findb ...
- Jmeter平均响应时间和TPS的计算方法
转自:https://www.cnblogs.com/xianlai-huang/p/7795215.html Jmeter的Throughput和平均RT的计算 1.TPS:每秒处理的事务数,jme ...
- BUG严重等级分类标准
1 编写目的 本文档是对独立测试阶段发现的缺陷(bug)按照严重等级进行分类,确保测试出的缺陷得到正确的理解,以方便缺陷的修改.回归测试工作可以顺利进行,同时也可以作为测试考核的依据. 2 适用范围 ...
- Java == 和 equals 的区别(面试描述)
== == 是一个比较运算符 既可以判断基本类型,又可以判断引用类型 如果判断基本数据类型,判断的是值是否相等 如果判断的是引用类型,判断的是地址是否相等,判断是不是同一个对象 equals equa ...
- like使用索引如何避免失效
1 准备数据 1.1 建表 DROP TABLE IF EXISTS staff; CREATE TABLE IF NOT EXISTS staff ( id INT PRIMARY KEY auto ...
- 如何写出优雅又地道的Python代码?【转载】
在Python社区文化的浇灌下,演化出了一种独特的代码风格,去指导如何正确地使用Python,这就是常说的pythonic.一般说地道(idiomatic)的python代码,就是指这份代码很pyth ...