android listview单击事件

2023-05-16

今天我们来学习下listview 单击事件,这在开发中是经常用的组件之一。

1.新建一个项目,名为ListViewDemo。



2.布置布局文件main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView 
android:id="@+id/info"
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:textSize="25px"
android:gravity="center_horizontal"/>
<ListView
android:id="@+id/datalist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>



data_list.xml文件


<?xml version="1.0" encoding="utf-8"?>
<TableLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableRow>
<ImageView
android:id="@+id/icon"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/file_icon"/>
<TextView 
android:id="@+id/_id"
android:textSize="15px"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView 
android:id="@+id/name"
android:textSize="15px"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
</TableLayout>


3.下面是核心代码

package org.listview.cn;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import org.lxh.demo.R;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;


public class MyListViewDemo extends Activity {
private String data[][] = { { "001", "C++" },
{ "002", "java" }, { "003", "SQL" },
{ "004", "LINUX" }, { "005", "汇编原理" },
{ "006", "计算机网络原理" }, { "007", "计算机组成原理m" },
{ "008", "数据结构" }, { "009", "操作系统" },
{ "010", "电子技术" } }; // 准备出若干个信息而这些信息以后将通过程序加入到内嵌的线性布局文件之中
private ListView datalist = null; // 定义ListView组件
private List<Map<String, String>> list = new ArrayList<Map<String, String>>(); // 定义显示的内容包装
private SimpleAdapter simpleAdapter = null; // 进行数据的转换操作
private TextView info = null;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.datalist = (ListView) super.findViewById(R.id.datalist); // 取得组件
this.info = (TextView) super.findViewById(R.id.info); // 取得组件
for (int x = 0; x < this.data.length; x++) {
Map<String, String> map = new HashMap<String, String>(); // 定义Map集合,保存每一行数据
map.put("_id", this.data[x][0]); // 与data_list.xml中的TextView组加匹配
map.put("name", this.data[x][1]); // 与data_list.xml中的TextView组加匹配
this.list.add(map); // 保存了所有的数据行
}
this.simpleAdapter = new SimpleAdapter(this, this.list,
R.layout.data_list, new String[] { "_id", "name" } // Map中的key的名称
, new int[] { R.id._id, R.id.name }); // 是data_list.xml中定义的组件的资源ID
this.datalist.setAdapter(this.simpleAdapter);
this.datalist.setOnItemClickListener(new OnItemClickListenerImpl()); // 单击选项
}


private class OnItemClickListenerImpl implements OnItemClickListener {


@SuppressWarnings("unchecked")
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Map<String, String> map = (Map<String, String>) MyListViewDemo.this.simpleAdapter
.getItem(position);
String _id = map.get("_id");
String name = map.get("name");
MyListViewDemo.this.info.setText("选中的数据项ID是:" + _id + ",名称是:"
+ name);
}
}
}


4.运行项目。
          5

5.ok,搞定,另外附上项目源码,供大家学习交流。======》http://download.csdn.net/detail/gsg8709/4138390

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android listview单击事件 的相关文章

  • 华为交换机配置SNMP

    SNMP参数详情 Quidway snmp agent community 为SNMPv1 amp SNMPv2c访问设置团体名group 设置基于用户安全模型的组local engineid 设置本地SNMP实体的引擎IDmib view
  • VMware设置虚拟机的网络为桥接模式,虚拟机使用主机的网段,虚拟机设置和主机一样的网关(网段)

    VMware设置虚拟机的网络为桥接模式 KeyValue电脑版本win 10 1909虚拟机版本 VMware 17 点击编辑虚拟机设置 这样虚拟机即可在和主机在同一个网段 验证 虚拟机的地址 xff1a 192 168 2 144 ip
  • Rust权威指南 读书笔记

    Rust权威指南 本书由 Rust 核心开发团队编写而成 xff0c 由浅入深地探讨了 Rust 语言的方方面面 从学习函数 选择数据结构及绑定变量入手 xff0c 逐步介绍所有权 trait 生命周期 安全保证等高级概念 xff0c 模式
  • Rust:使用libloader调用动态链接库 (DLL)

    掘金为同人创作 xff1a 掘金 最近需要使用Rust动态调用动态链接库 xff0c 本来打算是使用libloading的 xff0c 但是libloading在调用dll中的函数的时 xff0c 是必须要在编译时确定参数和return的类
  • 用flatpak安装程序(比如GIMP)的方法

    linux世界真的是无奇不有 xff0c 什么安装程序的方法都有 比如gimp xff0c 如果必要安装官网的最新版安装包 xff0c 你会发现他是flatpakref后缀的 xff0c 我刚开始懵了 xff0c 这是什么安装包 xff0c
  • 怎样查看本机打开的端口?

    怎样查看本机打开的端口 xff1f https zhidao baidu com question 203087246 html Netstat xff0c 显示协议统计和当前的 TCP IP 网络连接 a xff0c 显示所有连接和侦听端
  • webpack4基本使用

    基本使用 初始化一个package json文件 npm init yes 安装webpack以及webpack cli cnpm i webpack webpack cli save dev package json 34 scripts
  • C++中enum与字符串或CString互相转换的方法

    C 43 43 中没有专门为enum与字符串或CString互相转换的直接方法 xff0c 但是工作中会常遇到相互转换的场景 下面介绍一种自己实现的方法 xff0c 首先得定义一个enum类型 xff0c 同时 xff0c 定义一个与之对应
  • VC++标准化路径PathCanonicalize

    外部输入的参数不能直接作为文件路径 xff0c 防止被恶意攻击 xff0c 比如构造一个跨目录限制的文件路径 etc passwd或 boot ini xff0c 或构造一个指向系统关键文件的链接文件symlink 34 etc shado
  • 解决时间机器无法识别硬盘问题

    T7 SSD分区后做时光机器 xff0c 但无法识别 xff08 如图 xff09 xff0c 问题解决 一 问题描述 xff1a 当时没保存照片 xff0c 图片来自网络 问题详情 xff1a 硬盘没分区且是苹果可识别的格式 xff08
  • vscode stm32cubemx 优雅开发stm32,最简单步骤教程

    配置安装环境 下载STM32cubeMX xff0c 这个大家可以自己在stm的官网下载到下载VSCode下载arm none eabi gcc下载MinGW w64 xff0c 为了实现里面的makefile 等功能下载OpenOCD这里
  • Epoll两种模式浅析(ET or LT)

    linux异步IO浅析 http hi baidu com kouu blog item e225f67b337841f42f73b341 html epoll有两种模式 Edge Triggered 简称ET 和 Level Trigge
  • 5GC自学-5G接入网组成

    5GC接入网 如图所示 xff1a EPC xff08 就是4G核心网 xff09 被分为New Core xff08 5GC xff0c 5G核心网 xff09 和MEC xff08 移动网络边界计算平台 xff09 两部分 MEC移动到
  • 《C++程序设计实验3》

    描述 晶晶的朋友贝贝约晶晶下周一起去看展览 xff0c 但晶晶每周的1 3 5必须上课 xff0c 请帮晶晶判断她能否接受贝贝的邀请 xff0c 如果能输出YES xff1b 如果不能则输出NO 输入 输入贝贝邀请晶晶去看展览的日期 xff
  • webpack--PWA(网站离线访问技术)

    webpack config js const WorkboxWebpackPlugin 61 require 39 workbox webpack plugin 39 终端下载npm i workbox webpack plugin D
  • Ubuntu安装wine的方法(Linux Ubuntu安装Windows软件)

    我打算完全从头开始 xff0c 写一个专门用于桌面办公的纯国产操作系统 xff0c 规避主流操作系统上影响用户体验的问题 xff0c 系统力求简洁 前言 xff1a wine可以让你在linux上运行一些常用的windows xff0c 如
  • 冒泡排序,并输出每一趟的排序结果

    span class token keyword public span span class token keyword static span span class token keyword void span span class
  • [Linux]基于select的Socket编程实现客户端群聊[非阻塞]

    先看效果 xff1a 客户端的代码 xff1a span class hljs comment Create by Gpwner 2017年1月5日21 30 16 span span class hljs preprocessor inc
  • 深入理解Nginx~用于调试进程和定位问题

    1 是否以守护进程方式运行Nginx 语法 xff1a daemon on off 默认 xff1a daemon on 守护进程 xff08 daemon xff09 是脱离终端并且在后台运行的进程 它脱离终端是为了避免进程执行过程中的信
  • 笔记本电脑坏了,那些零件可以再利用

    1 买个硬盘盒 xff0c 把笔记本硬盘改装成移动硬盘 2 把笔记本的屏幕拆下来 xff0c 上淘宝买改装用的套装 xff0c 可以把笔记本的屏幕改装成扩展显示器和电视 xff08 重点推荐 xff09 3 内存条拆下来 xff0c 留着以

随机推荐

  • 天气预报API接口大全

    国家气象局提供的天气预报接口 接口地址 xff1a http www weather com cn data sk 101010100 html http www weather com cn data cityinfo 101010100
  • VMware安装Debian完成,启动出现黑屏现象,仅有一个光标,以及给出解决办法

    VMware安装Debian完成 xff0c 启动出现黑屏现象 xff0c 仅有一个光标 xff0c 以及给出解决办法 一 启动黑屏问题二 解决办法 一 启动黑屏问题 VMware安装Debian过程中 xff0c 一路选择默认选项 xff
  • C语言对栈的操作

    span class hljs preprocessor include lt stdio h gt span span class hljs preprocessor include lt stdlib h gt span span cl
  • Godot实用代码1000例

    关于 这是 Godot实用代码1000例 的CSDN博客版本 xff08 之前是PPT版本 xff09 xff0c 将收录笔者自己探索和学习的一些简单Godot编程案例 文章目录 关于原版开篇的废话适合哪些人群建议前置知识 基础的移动 旋转
  • Godot官网新闻翻译 - 2015年

    本文是 Godot官网新闻翻译 系列的第1篇 xff0c 该系列旨在翻译和汇总Godot官网所发布的所有新闻 让更多英文不好的童鞋可以领悟官方新闻中的重要信息和真谛 官网新闻地址 xff1a https godotengine org ne
  • 一文简单了解并构建DockerFile

    GreatSQL社区原创内容未经授权不得随意使用 xff0c 转载请联系小编并注明来源 GreatSQL是MySQL的国产分支版本 xff0c 使用上与MySQL一致 作者 xff1a 蟹黄瓜子文章来源 xff1a GreatSQL社区投稿
  • 更新sudo apt source提示sources.list拼写错误的解决方法

    如果sudo apt uodate 更新失败 xff0c 多半是源的问题 xff0c 这是轻的症状 xff0c 根据提示 xff0c 把产生错误错误源去掉就行了 xff0c 但是情况较复杂怎么办 xff1f 如果有一天 xff0c 你在终端
  • 静态库和动态链接库的安装(Windows环境)

    库的安装 xff1a freeglut为例 1 在SourceForge下载freeglut库 xff0c 其中包括include src文件夹和CMakesLists txt freeglut download SourceForge n
  • C++ share_ptr 循环引用问题浅析

    share ptr指针涉及到循环引用问题会因为share ptr指针对应的use count 无法清0 xff0c 导致内存泄露 xff0c 直接上例子 xff1a class S B class S A public shared ptr
  • 树莓派raspberry pi更换国内镜像

    有时候使用sudo apt get 和pip install 安装软件和一些库的时候下载速度简直是龟速如下图 xff1a xff0c 是因为在系统默认状态下 xff0c 安装软件会选择从国外的服务器上下载软件 默认地址是http raspb
  • 将SQL Server的任意记录转换为JSON格式(JQGRID) -- 支持SQL 2005

    从SQL 2008开始 xff0c SQL Sever已经支持JSON数据 xff0c SQL 2016已经对JSON数据的处理支持非常完善 对于SQL 2016以上版本的用户 xff0c 可以直接调用原生方法 xff0c 效率更高 因客户
  • gradle安装

    Gradle是一个主要用于Java项目的通用构建工具 它结合了Ant和Maven的最佳功能 与使用XML进行脚本编写的前辈不同 xff0c Gradle使用Groovy xff0c 这是一种动态的 xff0c 面向对象的Java平台编程语言
  • 树列表控件CTreeListCtrl类

    翻译来源 xff1a https www codeproject com Articles 2913 A Tree List Control 作者 xff1a TigerX 下载源文件 102 Kb 下载演示文件 54 6 Kb 介绍 这是
  • 2019xupt-acm校赛 题解(C.给你一个666)by出题组tongtong

    重现赛链接 2019 ACM ICPC Xi 39 an University of Posts amp Telecommunications School Contest 前面的话 有幸参与2019XUPT ACM校赛出题和裁判工作 过程
  • 【安装】在Windows下安装Debian(双系统)

    安装 一 前期准备二 Rufus制作启动盘三 修改BIOS四 以U盘启动安装Debian五 设置分区 一 前期准备 1 一个至少8G的U盘 2 U盘引导制作工具 我用的Rufus 链接 3 Debian的iso镜像 我用的清华镜像 点进链接
  • Swift 四种实现单例的方式

    单例模式 单例模式是设计模式中最简单的一种 xff0c 甚至有些模式大师都不称其为模式 xff0c 称其为一种实现技巧 xff0c 因为设计模式讲究对象之间的关系的抽象 xff0c 而单例模式只有自己一个对象 当你只需要一个实例的时候需要使
  • python之字符串切片为列表

    函数名说明A replace old new count 将字符串A里的old替换为new xff0c 替换次数为counta join A 将字符串序列A之间插入字符aA split sep xff0c count 将字符串A切片输出为列
  • 用python实现最简单简单的计算器

    直接上代码 xff1a 密码是123 过程 体验 收获及自我评价 xff0c 本人在活动的具体工作可以输入1000字 import os 让解释器停住 xff0c 引用os模块 print 34 欢迎使用计算程序 34 print 34 请
  • Android 一键分享功能

    之前在做项目时遇到这么个需求 xff0c 就是用户点击Menu或者一个按钮可以把文字分享到各大微博例如新浪微博 腾讯 人人 开心 校内等 现在我给大家演示一下 xff08 一 xff09 先建一个工程文件ShareDemo xff08 二
  • android listview单击事件

    今天我们来学习下listview 单击事件 xff0c 这在开发中是经常用的组件之一 1 新建一个项目 xff0c 名为ListViewDemo 2 布置布局文件main xml lt xml version 61 34 1 0 34 en