首页 > 解决方案 > Recyclerview onclick 项目到数据库

问题描述

我想在数据库中添加一个 STRiNG t 但 OnClick View 我无法通过将其添加到数据库中的说明 我在该行出现错误

GestioneDB db = 新 GestioneDB(this);

错误是“无法应用 GestioneDB”

我使用了一个 recyclerview 来显示一个十,我需要将 onclick 项目传递给数据库

t = lista_show.get (getAdapterPosition ());

class MainAdapter extends RecyclerView.Adapter <MainAdapter.ViewHolder> {

private Context context;
    ArrayList<String> lista_show;


    public MainAdapter(ArrayList<String> lista_shows) {
        lista_show = lista_shows;
    }


    @Override
    public MainAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from (parent.getContext ()).inflate (R.layout.row,parent,false);
        return new ViewHolder (view);
    }

    @Override
    public void onBindViewHolder(MainAdapter.ViewHolder holder, int position) {
        holder.mdevice.setText (lista_show.get (position));

    }

    @Override
    public int getItemCount() {
        return lista_show.size ();
    }

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
        public TextView mdevice;


        public ViewHolder( View itemView) {
            super (itemView);
            itemView.setOnClickListener (this);
            mdevice = itemView.findViewById (R.id.device);



        }


        @Override
        public void onClick(View v) {

            String t;
            t = lista_show.get (getAdapterPosition ());

        }
    }


}

标签: androiddatabaseandroid-recyclerview

解决方案


在类ViewHolderadd methodbingItem(String item)中,当该方法在该方法中调用 updateTextView mdevice并存储String item在 中时ViewHolder,添加一个字段String currentItem并将其存储在那里。

现在在你的onClick写作中t = currentItem;,你已经点击了项目。

如果要将其添加到数据库,则应将侦听器从活动传递给适配器,然后传递给持有者,然后调用该侦听器,因为它是从活动传递的,它可以具有上下文(或数据库引用),因此您拥有所需的一切将其保存在数据库中。


推荐阅读