第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何從房間數(shù)據(jù)庫中刪除回收者視圖項(xiàng)目

如何從房間數(shù)據(jù)庫中刪除回收者視圖項(xiàng)目

ITMISS 2023-04-26 14:42:29
我正在使用 MVVM 架構(gòu)模型創(chuàng)建一個(gè)應(yīng)用程序。我在 MainActivity 中有回收器視圖,單擊回收器視圖項(xiàng)目中的刪除按鈕時(shí),它應(yīng)該從房間數(shù)據(jù)庫中刪除。我知道可以在適配器類中刪除項(xiàng)目,但因?yàn)槲艺谑褂肕VVM模型我想在Repository類中進(jìn)行刪除操作。這是我的代碼如下:UserDao.java@Daopublic interface UserDao {@Insert(onConflict = OnConflictStrategy.REPLACE)void Insert(User... users);@Query("SELECT * FROM Users")LiveData<List<User>> getRoomUsers();@Deletevoid Delete(User... user);}   UserAdapter.javapublic class UserAdapter extends RecyclerView.Adapter<UserAdapter.ViewHolder> {List<User> userList;Context context;public UserAdapter(List<User> userList, Context context) {    this.userList = userList;    this.context = context;}@NonNull@Overridepublic UserAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.user_row_layout,parent,false);    ViewHolder viewHolder = new ViewHolder(v);    return viewHolder;}@Overridepublic void onBindViewHolder(@NonNull UserAdapter.ViewHolder holder, int position) {    final User users = userList.get(position);    holder.row_name.setText(users.getName());    holder.row_age.setText(users.getAge());    holder.delete.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {        }    });}@Overridepublic int getItemCount() {    return userList.size();}public void setUserList(List<User> userList) {    this.userList = userList;    notifyDataSetChanged();}public class ViewHolder extends RecyclerView.ViewHolder {    TextView row_name,row_age;    ImageView delete;    public ViewHolder(@NonNull View itemView) {        super(itemView);        row_name = itemView.findViewById(R.id.row_name);        row_age = itemView.findViewById(R.id.row_age);        delete = itemView.findViewById(R.id.delete);      }   }}
查看完整描述

2 回答

?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

首先,UserViewModel像在 中那樣在您的適配器類中進(jìn)行初始化MainActivity,然后調(diào)用 delete 函數(shù)。


holder.delete.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {

             userModel.deleteItem(users);  

        }

    });

在類中添加此功能UserModel。


public void deleteItem(User user) = repo.deleteItem(user);

在UserRepository課堂上,調(diào)用Delete函數(shù)。


public void deleteItem(User user) {

        userDb.userDao().Delete(user);

 }


查看完整回答
反對(duì) 回復(fù) 2023-04-26
?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

嘗試使用實(shí)時(shí)數(shù)據(jù)觀察數(shù)據(jù)庫的變化,無論何時(shí)執(zhí)行任何操作,添加或刪除(在數(shù)據(jù)庫中),在您的觀察者中為回收者視圖刷新該數(shù)據(jù)


為您的適配器設(shè)置點(diǎn)擊監(jiān)聽器


public interface OnListInteractionListener {

        // TODO: Update argument type and name

        void onListInteraction(User user);

    }

在適配器類


private final OnListInteractionListener mListener;


    public UserAdapter(List<User> users, OnListInteractionListener listener,Context context) {


        mListener = listener;

    }

并在視圖中綁定持有人


holder.delete.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {


mListener.onListInteraction(userList.get(position))

        }

    });

在您的活動(dòng)/片段中實(shí)現(xiàn)該偵聽器,您可以從中訪問 Viewmodel 和 repo


查看完整回答
反對(duì) 回復(fù) 2023-04-26
  • 2 回答
  • 0 關(guān)注
  • 146 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)