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); } }
无论风雨,和自己一决胜负吧