您好我正在使用recyclerview其中onitem單擊偵聽器不工作我也使用接口實現。 我的編碼 在片段:Recyclerview OnItem單擊監聽器不工作
public void setList() {
int total = 0;
for (CartRes item : cartBasket) {
}
final LinearLayoutManager layoutManager = new GridLayoutManager(context,2);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
adapter = new NewAdapter(context, cartBasket, mListener, MYFRAGMENT, MyJavaClass.this);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
public interface CartListInterface {
// TODO: Update argument type and name
void onListFragmentInteraction(CartRes item);
}
@Override
public void onStop() {
super.onStop();
CommonUtil.dbUtil.close();
}
@Override
public void onStart() {
super.onStart();
CommonUtil.dbUtil.open();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof CartListInterface) {
mListener = (CartListInterface) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnAccListFragInteractionListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
和我的適配器:
public NewAdapter(Context context, List<CartRes> cartBasket, MyJavaClass.CartListInterface mListener, String myfragment, MyJavaClass Cartfragment) {
cartRes = cartBasket;
MYFRAGMENT = myfragment;
this.mListener = mListener;
this.con = context;
this.fragment = Cartfragment;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.chicken_list, parent, false);
CommonUtil.dbUtil = new DbUtil(con);
CommonUtil.dbUtil.open();
CommonUtil.dbHelper = new DbHelper(con);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
/*
* Get the values from CartRes Class
*
* */
if (null != mListener) {
mListener.onListFragmentInteraction(holder.cartRess);
} else{
Log.e("edgarrr","No Listner");
}
holder.cartRess = cartRes.get(position);
holder.prName.setText(cartRes.get(position).proname);
holder.prName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mListener.onListFragmentInteraction(holder.cartRess);
}
* */
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView prName, prate,prid,weight,itemid;
public CardView cardlist_item;
LinearLayout linearBG;
ImageView bgImage,imgCart,offer;
Spinner spinner1;
CartRes cartRess;
public ViewHolder(View itemView) {
super(itemView);
itemView.setClickable(true);
itemView.setOnClickListener(this);
cardlist_item = (CardView) itemView.findViewById(R.id.cardlist_item1);
prName = (TextView) itemView.findViewById(R.id.ShpName);
prate = (TextView) itemView.findViewById(R.id.rate);
linearBG = (LinearLayout) itemView.findViewById(R.id.linearBG);
bgImage = (ImageView) itemView.findViewById(R.id.imageView);
}
@Override
public void onClick(View view) {
mListener.onListFragmentInteraction(cartRess);
}
}
誰能幫助我完成這個,我不知道我做了錯誤。請點我的錯誤,我試圖尋找在許多方面在這裏實現,該onitem點擊收聽希望在bindholder
的代碼似乎罰款,你能發佈監聽器被觸發的代碼? –