android - 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 ());
}
}
}
解决方案
在类ViewHolder
add methodbingItem(String item)
中,当该方法在该方法中调用 updateTextView mdevice
并存储String item
在 中时ViewHolder
,添加一个字段String currentItem
并将其存储在那里。
现在在你的onClick
写作中t = currentItem;
,你已经点击了项目。
如果要将其添加到数据库,则应将侦听器从活动传递给适配器,然后传递给持有者,然后调用该侦听器,因为它是从活动传递的,它可以具有上下文(或数据库引用),因此您拥有所需的一切将其保存在数据库中。