[英]Recyclerview onclick item to database
我想向數據庫添加一個字符串,但 OnClick 視圖我無法通過將它添加到數據庫中的說明我在該行上收到錯誤
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
添加方法bingItem(String item)
,當該方法被調用時,在該方法中更新TextView mdevice
並將String item
存儲在ViewHolder
,在那里添加一個字段String currentItem
並將其存儲在那里。
現在在你的onClick
寫t = currentItem;
並且您單擊了項目。
如果要將其添加到數據庫,則應將偵聽器從活動傳遞到適配器,然后傳遞給持有者,然后調用該偵聽器,因為它是從活動傳遞的,它可以具有上下文(或數據庫引用),因此您擁有所需的一切將其保存在數據庫中。
您可以通過這種方式在 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
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.