ListView选中获取数据并弹出菜单项
前言
作为一名Android小白,我在编写过程中,使用ListView列表,想要使用他来完成长按弹出菜单选项,并且还要进行事件操作,经过百度编程的经历后,终于成功完成。在此附上这块比较完整的代码,理论就不加以概述了,基本注释都有的,嘻嘻,希望可以帮助到大家,如果感觉不错的话,点个赞呗。
源码示例
注意:此处不进行ListView列表的具体实现,需要有一定Android和Java基础知识哦,有什么问题,欢迎下方评论区留言哦
XML布局中的ListView
<!--- ListView列表 -->
<ListView
android:id="@+id/query_book_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"> </ListView>
Java
// Initialize ListView
private ListView bookListView; // 获取listView控制权
bookListView = findViewById(R.id.query_book_list_view); // 添加长按点击弹出选项框菜单
bookListView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.setHeaderTitle("选择操作!");
menu.add(0,0,0,"更新图书");
menu.add(0,1,0,"删除图书");
}
}); /**
* 给菜单项添加事件
* @param item 菜单索引
* @return
*/
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
// 获取上下文
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
// 得到listView中选择的条目绑定的Id
String id = String.valueOf(info.id);
// 得到列表子节点的视图
View targetView = info.targetView;
// 获取单列 某一元素的控制权
TextView bookNumberText = targetView.findViewById(R.id.book_number);
// 获取元素内容
String bookNumberToString = bookNumberText.getText().toString();
Log.i("=====绑定的ID==",id);
Log.i("===== 图书编号 ==",bookNumberToString);
switch (item.getItemId()) {
case 0:
// 更新事件的方法
// updateDiaLog(id);
return true;
case 1:
// 删除事件的方法
// deleteData(id);
return true;
default:
return super.onContextItemSelected(item);
}
}
ListView选中获取数据并弹出菜单项的更多相关文章
- 上下文菜单项(contextMenu)----长按按钮弹出菜单项
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- UIMenuController 弹出菜单框
弹出菜单框 UIMenuItem *menuItem1 = [[UIMenuItem alloc] initWithTitle:@"删除" action:@selector(del ...
- SQL Server 2008 R2中,变表的右键弹出菜单中的“选择前1000行”为“选择所有行”
原文:SQL Server 2008 R2中,变表的右键弹出菜单中的"选择前1000行"为"选择所有行" 从SQL Server 2008开始,微软为了提高查询 ...
- 获取layer.open弹出层的返回值
正在开发的车联网项目用到了layer API.当我在开发“新建电子围栏”的时候需要弹出地图,用户在地图中画一个区域,最后将这个弹出层的数据返回给原页面.下面是我的实现过:程: 触发弹出层的代码: la ...
- Android ListView两种长按弹出菜单方式
转自:http://www.cnblogs.com/yejiurui/p/3247527.html package com.wyl.download_demo; import java.util.Ar ...
- Android之弹出菜单框【注冊上下文菜单】
注冊上下文菜单:(长按弹出一个菜单) 第一种创建方法(与长按事件结合): public class MainActivity extends Activity { private TextView u ...
- SpriteBuilder弹出菜单层造成卡顿的解决办法
如果你注意到略微的卡顿(延时)(lag due to low framerate)当显示一个全屏的弹出菜单时,你可以简单的设置_levelNode(_levelNode是主游戏界面中的背景层,所有游戏 ...
- layui弹出层处理(获取、操作弹出层数据等)
要点: 字符串被渲染为弹窗层之后,回自动转换为DOM,可以使用jq进行各种操作 <!DOCTYPE html> <html> <head> <meta cha ...
- js获取下拉框当前选中的值并弹出
this.options[this.selectedIndex].value --- 显示文本 this.value --- 实际存储值 调用实例: <script language=" ...
- 关于JqueryCheck选中获取数据
关于Jquery获取Check选中数据 首先还是得引用Jquery的包,然后新增3个CheckBox <div> <input type="checkbox" n ...
随机推荐
- k8s介绍与常用命令
kubernetes基础与常用命令 原文地址 https://blog.csdn.net/footless_bird/article/details/125798691 官方文档 https://ku ...
- 搭建CTF动态靶场
前言 本文借鉴文章:https://www.yuque.com/dengfenglai-esbap/kb/mc4k41?#xOxNG 在此基础上修改了一点(照着原来的做没成功),感谢这位师傅给的资源. ...
- 如何将 Spire.Doc for C++ 集成到 C++ 程序中
Spire.Doc for C++是一个专业的 Word 库,供开发人员在任何类型的 C++ 应用程序中阅读.创建.编辑.比较和转换 Word 文档. 本文演示了如何以两种不同的方式将 Spire.D ...
- vue中点击其他任意位置关闭弹框
mounted() { //点击任意位置关闭区域弹窗 document.addEventListener('click', (e) => { //获取弹窗对象 const userCon = d ...
- 2023-01-08:小红定义一个仅有r、e、d三种字符的字符串中, 如果仅有一个长度不小于2的回文子串,那么这个字符串定义为“好串“。 给定一个正整数n,输出长度为n的好串有多少个。 结果对10^9
2023-01-08:小红定义一个仅有r.e.d三种字符的字符串中, 如果仅有一个长度不小于2的回文子串,那么这个字符串定义为"好串". 给定一个正整数n,输出长度为n的好串有多少 ...
- 2022-09-18:以下go语言代码输出什么?A:1;B:15;C:panic index out of range;D:doesn’t compile。 package main import
2022-09-18:以下go语言代码输出什么?A:1:B:15:C:panic index out of range:D:doesn't compile. package main import ( ...
- 2022-07-08:以下go语言代码输出什么?A:3;B:+Inf;C:true;D:编译错误。 package main import “fmt“ func main() { var
2022-07-08:以下go语言代码输出什么?A:3:B:+Inf:C:true:D:编译错误. package main import "fmt" func main() { ...
- 2022-05-06:给你一个整数数组 arr,请你将该数组分隔为长度最多为 k 的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。 返回将数组分隔变换后能够得到的元
2022-05-06:给你一个整数数组 arr,请你将该数组分隔为长度最多为 k 的一些(连续)子数组.分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值. 返回将数组分隔变换后能够得到的元 ...
- SqliLabs 第六关 报错注入!!!
点开网址,首先看到一个页面,首先尝试闭合字符 id=1 报错 id=1' 报错 id=1"成功 然后开始爆字段?id=1" order by 3 --+ 发现有三个字段然后查询显示 ...
- c++的前世今生
C++ 语言是本贾尼·斯特劳斯特卢普 在1982 年发明的,早期版本被称为C with Classes,之后在1983年更名为C++. C++语言在发明后很快就获得了广泛的应用,由于其具有高效.灵活和 ...