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);
        }
    }

 

posted @ 2021-12-19 22:39  阿尔法哲  阅读(352)  评论(0编辑  收藏  举报