【问题标题】:pass selected row's data to OnContextItemSelected to perform database delete将选定行的数据传递给 OnContextItemSelected 以执行数据库删除
【发布时间】:2018-06-03 20:11:39
【问题描述】:

所以有一个 recyclerViewAdapter 填充来自 RoomDB 的数据并显示它。 当用户长按每一行并选择删除时,我想执行删除查询。 我应该如何检索所选行的数据(例如名称或 ID)并在 OnContextItemSelected 的 MainActivity 中接收它,以便我可以从我的 Db 中删除它? -谢谢

 private StudentViewHolder(View itemView) {
        super(itemView);
        nameItemView = itemView.findViewById(R.id.nameTextView);
        numberItemView = itemView.findViewById(R.id.numberTextView);
        imageItemView = itemView.findViewById(R.id.profile_image);
        idItemView = itemView.findViewById(R.id.idView);
        itemView.setOnCreateContextMenuListener(this);        }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) {

        menu.setHeaderTitle("Select Action");
        menu.add(Menu.NONE,0,getAdapterPosition(),"Delete");
        menu.add(Menu.NONE,1,getAdapterPosition(),"Update");
    }

MainActivity.java 我尝试了很多东西,但找不到任何线索。

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();????
    Log.e(,"info ="+ info);
    Student student = mStudentViewModel.getAllStudents().getValue().get(item.getGroupId());?????
    Student student1 = adapter.getClass().geti?????
    switch (item.getGroupId()){?????
        case 0 :
            break;

        case 1:
              break;
    }
    return true;
}

【问题讨论】:

    标签: android sqlite android-recyclerview android-adapter


    【解决方案1】:

    当用户通过覆盖 onSwiped 滑动 recyclerView 时,我设法执行了删除查询!

                @Override
                public void onSwiped(RecyclerView.ViewHolder viewHolder,
                                     int direction) {
                    int position = viewHolder.getAdapterPosition();
                    S s;
                    s= adapterAll.getSAtPosition(position);
    
                    // Delete
                    mStudentViewModel.delete(s);
    
                }
            });
    

    【讨论】:

      猜你喜欢
      • 2014-11-05
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 2018-02-14
      • 2020-03-25
      • 2022-06-15
      相关资源
      最近更新 更多