Recyclerviewclick элемент в базу данных - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу добавить STRiNG t в базу данных, но OnClick View Я не могу передать инструкции по добавлению его в базу данных. В этой строке выдается ошибка

GestioneDB db = новый GestioneDB (это);

ошибка: «GestioneDB не может быть применен»

Я использовал обзор рециркулятора, чтобы показать десятку, и мне нужно передать элемент 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 ());

        }
    }


}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

вы можете сделать так, чтобы получить позицию адаптера в вашем onBindViewHolder: -

holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              String t = String.valueOf(position);
              // now you can use t where you want
            }
        });
0 голосов
/ 30 апреля 2019

В классе ViewHolder добавьте метод bingItem(String item), когда этот метод называется update TextView mdevice внутри этого метода и сохраните String item в ViewHolder, добавьте туда одно поле String currentItem и сохраните его там.

Теперь в вашем onClick напишите t = currentItem; и вы нажали на элемент.

Если вы хотите добавить его в базу данных, вы должны передать слушателя из действия в адаптер, а затем в держатель и затем вызвать этого слушателя, так как он передается из действия, он может иметь контекст (или ссылку на БД), поэтому у вас есть все, что вам нужно, чтобы сохранить его в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...