24.Android中的列表--ListView

ListView

1.简单列表--ArrayAdapter

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginRight="10dp"android:orientation="vertical"android:paddingLeft="10dp"><Buttonandroid:id="@+id/btn_array_list"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="Array列表"/><Buttonandroid:id="@+id/btn_array_simple"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="Simple列表"/></LinearLayout></ScrollView>

<?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"android:orientation="vertical"tools:context=".ArrayListActivity"><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="match_parent"/>
</LinearLayout>

package com.example.listviewtest;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity implements View.OnClickListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn_array_list = findViewById(R.id.btn_array_list);btn_array_list.setOnClickListener(this);Button btn_array_simple = findViewById(R.id.btn_array_simple);btn_array_simple.setOnClickListener(this);}@Overridepublic void onClick(View view) {if (view.getId() == R.id.btn_array_list){Intent intent = new Intent(this, ArrayListActivity.class);startActivity(intent);} else if (view.getId() == R.id.btn_array_simple) {Intent intent = new Intent(this, SimpleListActivity.class);startActivity(intent);}}
}

package com.example.listviewtest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;import java.util.ArrayList;
import java.util.List;public class ArrayListActivity extends AppCompatActivity {private ListView mListView;private List<String> mStringList;private ArrayAdapter<String> mArrayAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_array_list);mListView = findViewById(R.id.lv);mStringList = new ArrayList<>();for (int i = 0; i < 50; i++) {mStringList.add("这是条目"+i);}mArrayAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,mStringList);mListView.setAdapter(mArrayAdapter);mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Toast.makeText(ArrayListActivity.this,"你点击了"+i,Toast.LENGTH_LONG).show();}});}
}

2.图文列表--SimpleAdapter

<?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=".SimpleListActivity"><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="match_parent"/>
</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="10dp"android:paddingTop="5dp"android:paddingRight="10dp"android:paddingBottom="5dp"><ImageViewandroid:id="@+id/iv_img"android:layout_width="100dp"android:layout_height="100dp"android:scaleType="centerCrop"android:src="@drawable/ic_launcher_background"/><TextViewandroid:id="@+id/tv_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:layout_toRightOf="@id/iv_img"android:ellipsize="end"android:maxLines="1"android:textSize="20sp"android:textStyle="bold"android:text="雨中漫步"/><TextViewandroid:id="@+id/tv_content"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/tv_title"android:layout_marginLeft="10dp"android:layout_toRightOf="@id/iv_img"android:ellipsize="end"android:maxLines="3"android:text="人生就像时一场旅行,不必在乎目的地,在乎你妈说的你妈的嘛嘛嘛才是能真的嘛嘛嘛对咯收到反馈大姐夫,啊塞德里克复健科老师的会计法 阿是两地分居"android:textSize="16sp"/></RelativeLayout>

package com.example.listviewtest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class SimpleListActivity extends AppCompatActivity {private ListView mListView;private SimpleAdapter mSimpleAdapter;private List<Map<String,Object>> mList;private int[] imgs = {R.drawable.test1,R.drawable.test2,R.drawable.test3,R.drawable.test4,R.drawable.test5,R.drawable.test6,R.drawable.test7,R.drawable.test8,R.drawable.test9,R.drawable.test10};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_simple_list);mListView = findViewById(R.id.lv);mList = new ArrayList<>();for (int i = 0; i < 50; i++) {Map<String,Object> map = new HashMap<>();map.put("img",imgs[i%imgs.length]);map.put("title","这是标题"+i);map.put("content","这是内容"+i);mList.add(map);}mSimpleAdapter = new SimpleAdapter(this,mList,R.layout.list_item_layout,new String[]{"img","title","content"},new int[]{R.id.iv_img,R.id.tv_title,R.id.tv_content});mListView.setAdapter(mSimpleAdapter);}
}

3.图文复杂列表--BaseAdapter

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginRight="10dp"android:orientation="vertical"android:paddingLeft="10dp"><Buttonandroid:id="@+id/btn_array_list"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="Array列表"/><Buttonandroid:id="@+id/btn_array_simple"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="Simple列表"/><Buttonandroid:id="@+id/btn_array_base"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="BaseAdapter列表"/></LinearLayout></ScrollView>

package com.example.listviewtest;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity implements View.OnClickListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn_array_list = findViewById(R.id.btn_array_list);btn_array_list.setOnClickListener(this);Button btn_array_simple = findViewById(R.id.btn_array_simple);btn_array_simple.setOnClickListener(this);Button btn_array_base = findViewById(R.id.btn_array_base);btn_array_base.setOnClickListener(this);}@Overridepublic void onClick(View view) {if (view.getId() == R.id.btn_array_list){Intent intent = new Intent(this, ArrayListActivity.class);startActivity(intent);} else if (view.getId() == R.id.btn_array_simple) {Intent intent = new Intent(this, SimpleListActivity.class);startActivity(intent);} else if (view.getId() == R.id.btn_array_base) {Intent intent = new Intent(this, BaseAdapterActivity.class);startActivity(intent);}}
}

<?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=".BaseAdapterActivity"android:orientation="vertical"><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="match_parent"/>
</LinearLayout>

package com.example.listviewtest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;import com.example.listviewtest.adapter.MyAdapter;
import com.example.listviewtest.bean.ItemBean;import java.util.ArrayList;
import java.util.List;public class BaseAdapterActivity extends AppCompatActivity {private ListView mListView;private List<ItemBean> mBeanList;private MyAdapter mMyAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_base_adapter);initView();initData();initEvent();}private void initEvent() {mMyAdapter = new MyAdapter(this,mBeanList);mListView.setAdapter(mMyAdapter);mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {ItemBean itemBean = mBeanList.get(i);String title = itemBean.getTitle();Toast.makeText(BaseAdapterActivity.this,"您点击了"+i+title,Toast.LENGTH_LONG).show();}});mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {return false;}});}private void initData() {mBeanList = new ArrayList<>();ItemBean itemBean1 = new ItemBean();itemBean1.setTitle("我的小黑狗");itemBean1.setContent("我的小黑狗,明天就到了,到底是死是活,没人知道,希望你不会挂");itemBean1.setImgResId(R.drawable.test1);ItemBean itemBean2 = new ItemBean();itemBean2.setTitle("我的小白狗");itemBean2.setContent("我的小白狗,以前跑丢了,希望你不会被狗贩子抓去杀了,卖狗肉");itemBean2.setImgResId(R.drawable.test2);ItemBean itemBean3 = new ItemBean();itemBean3.setTitle("我的小黑狗");itemBean3.setContent("我的小黑狗,明天就到了,到底是死是活,没人知道,希望你不会挂");itemBean3.setImgResId(R.drawable.test3);ItemBean itemBean4 = new ItemBean();itemBean4.setTitle("我的小白狗");itemBean4.setContent("我的小白狗,以前跑丢了,希望你不会被狗贩子抓去杀了,卖狗肉");itemBean4.setImgResId(R.drawable.test4);ItemBean itemBean5 = new ItemBean();itemBean5.setTitle("我的小黑狗");itemBean5.setContent("我的小黑狗,明天就到了,到底是死是活,没人知道,希望你不会挂");itemBean5.setImgResId(R.drawable.test5);ItemBean itemBean6 = new ItemBean();itemBean6.setTitle("我的小白狗");itemBean6.setContent("我的小白狗,以前跑丢了,希望你不会被狗贩子抓去杀了,卖狗肉");itemBean6.setImgResId(R.drawable.test6);ItemBean itemBean7 = new ItemBean();itemBean7.setTitle("我的小黑狗");itemBean7.setContent("我的小黑狗,明天就到了,到底是死是活,没人知道,希望你不会挂");itemBean7.setImgResId(R.drawable.test7);ItemBean itemBean8 = new ItemBean();itemBean8.setTitle("我的小白狗");itemBean8.setContent("我的小白狗,以前跑丢了,希望你不会被狗贩子抓去杀了,卖狗肉");itemBean8.setImgResId(R.drawable.test8);ItemBean itemBean9 = new ItemBean();itemBean9.setTitle("我的小黑狗");itemBean9.setContent("我的小黑狗,明天就到了,到底是死是活,没人知道,希望你不会挂");itemBean9.setImgResId(R.drawable.test9);ItemBean itemBean10 = new ItemBean();itemBean10.setTitle("我的小白狗");itemBean10.setContent("我的小白狗,以前跑丢了,希望你不会被狗贩子抓去杀了,卖狗肉");itemBean10.setImgResId(R.drawable.test10);mBeanList.add(itemBean1);mBeanList.add(itemBean2);mBeanList.add(itemBean3);mBeanList.add(itemBean4);mBeanList.add(itemBean5);mBeanList.add(itemBean6);mBeanList.add(itemBean7);mBeanList.add(itemBean8);mBeanList.add(itemBean9);mBeanList.add(itemBean10);}private void initView() {mListView = findViewById(R.id.lv);}
}

package com.example.listviewtest.adapter;import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import com.example.listviewtest.R;
import com.example.listviewtest.bean.ItemBean;import java.util.List;public class MyAdapter extends BaseAdapter {private List<ItemBean> mBeanList;private LayoutInflater mLayoutInflater;private Context mContext;public MyAdapter(Context context, List<ItemBean> beanList){this.mContext = context;this.mBeanList = beanList;mLayoutInflater = LayoutInflater.from(mContext);}@Overridepublic int getCount() {return mBeanList.size();}@Overridepublic Object getItem(int i) {return mBeanList.get(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {view = mLayoutInflater.inflate(R.layout.list_item_layout,viewGroup,false);ImageView imageView = view.findViewById(R.id.iv_img);TextView tvTitle= view.findViewById(R.id.tv_title);TextView tvContent = view.findViewById(R.id.tv_content);ItemBean itemBean = mBeanList.get(i);imageView.setImageResource(itemBean.getImgResId());tvTitle.setText(itemBean.getTitle());tvContent.setText(itemBean.getContent());return view;}
}

package com.example.listviewtest.bean;public class ItemBean {private String title;private String content;private int imgResId;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public int getImgResId() {return imgResId;}public void setImgResId(int imgResId) {this.imgResId = imgResId;}@Overridepublic String toString() {return "itemBean{" +"title='" + title + '\'' +", content='" + content + '\'' +", imgResId=" + imgResId +'}';}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450470.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python计算两个DataFrame的指定两列中,相同的数据有多少

目的&#xff1a;查询数据1和数据2中&#xff0c;red与red列相同 并且blue与blue列相同的&#xff0c;情况有多少。 &#xff08;备注&#xff1a;两个数据中格式不一致&#xff0c;需要经过json提取等处理步骤&#xff09; 思路步骤&#xff1a; 1、读取数据1&#xff0c;筛选…

MongoDB的分片集群(一) : 基础知识

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 目录导读 1. 什么是MongoDB分片 2. MongoDB分片集群介绍 2.1 MongoDB分片集群架构 2.2 MongoDB分片集群优势 3. 分片键…

C++核心deque容器,stack容器,queue容器,list容器,set容器,pair ,map容器

3.deque容器 1.deque容器的基本概念 Vector容器是单向开口的连续内存空间&#xff0c;deque则是一种双向开口的连续线性空间。所谓的双向开口&#xff0c;意思是可以在头尾两端插入元素&#xff0c;但是在其头部操作效率奇差&#xff0c;无法被接受。 deque容器和vector容器最…

Go语言编写安全的HTTP代理服务器

在构建HTTP代理服务器时&#xff0c;安全性是一个不可忽视的重要因素。使用Go语言编写代理服务器可以确保较高的性能和并发性&#xff0c;同时通过一些关键的安全措施&#xff0c;可以增强服务器的安全性。 加密通信&#xff1a; 使用HTTPS&#xff1a;HTTPS通过TLS/SSL协议对…

PostgreSQL 也很强大,为何在中国大陆,MySQL 成为主流,PostgreSQL 屈居二线呢?

问题&#xff1a; PostgreSQL 也很强大&#xff0c;为何在中国大陆&#xff0c;MySQL 成为主流&#xff0c;PostgreSQL 屈居二线呢&#xff1f;PostgreSQL 能否替代 MySQL&#xff1f; 当我们讨论为何 MySQL 在中国大陆成为主流而 PostgreSQL 屈居二线时&#xff0c; 我们其实…

环形链表(快慢指针)

给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环…

TQ15EG开发板教程:使用vivado2023.1实现LWIP的网络传输

使用vivado2023.1实现LWIP的网络传输 创建工程模板在hello_world中已经介绍过了&#xff0c;这里直接从配置完zynq ip核开始 配置好IP核后&#xff0c;右键设计模块&#xff0c;点击Generate Output ... 右键设计模块生成HDL文件&#xff0c;本工程不会使用到bit文件所以不用生…

睿尔曼6自由度机械臂ROS驱动包功能拓展之查询指令

1&#xff1a;主要环境预览 1&#xff1a;系统&#xff1a;Ubuntu 20.04 2&#xff1a;ROS&#xff1a;noetic 3&#xff1a;对于系统要求需根据相关手册完成机械臂相关依赖安装&#xff0c;能够运行机械臂本身基本功能&#xff0c; 包括 moveit。 4&#xff1a;准备资料…

Golang的数字签名之旅:crypto/ecdsa库详解

Golang的数字签名之旅&#xff1a;crypto/ecdsa库详解 引言crypto/ecdsa库概览基本功能安装和设置使用场景 ECDSA原理简介椭圆曲线密码学基础ECDSA的工作原理安全性考虑 Golang中ECDSA的实现密钥生成数字签名签名验证 crypto/ecdsa的高级应用性能优化安全性考虑实际应用案例 总…

echarts条形图添加滚动条

效果展示: 测试数据: taskList:[{majorDeptName:测试,finishCount:54,notFinishCount:21}, {majorDeptName:测试,finishCount:54,notFinishCount:21}, {majorDeptName:测试,finishCount:54,notFinishCount:21}, {majorDeptName:测试,finishCount:54,notFinishCount:21}, {maj…

备战蓝桥杯---搜索(应用基础1)

话不多说&#xff0c;直接看题&#xff1a; 显然&#xff0c;我们直接用深搜&#xff0c;我们可以先把空位用结构体存&#xff0c;然后打表存小方块&#xff0c;再用数组存行列。 下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int a[12][12];…

2024美赛A题七鳃鳗种群复杂系统动力学模型完整成品论文和代码

经过不懈的努力&#xff0c;2024美赛A题完整成品论文和代码已完成&#xff0c;代码为A题全部4问的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1七鳃鳗种群竞争模型的建立和求解、问题2种群优势劣势评估模型的建立…