Код адаптера
public class ButtonGroupAdp extends RecyclerView.Adapter<ButtonGroupAdp.MyViewHolder> {
List<ButtonGroup> mList;
private ItemClickListener mClickListener;
Context context;
private int screenWidth;
public ButtonGroupAdp(List<ButtonGroup> mList, Context context) {
this.mList = mList;
this.context = context;
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
screenWidth = size.x;
}
public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView txtTitle;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
txtTitle = itemView.findViewById(R.id.tv_name);
}
@Override
public void onClick(View view) {
if (mClickListener != null) mClickListener.onItemClick(view, getAdapterPosition());
}
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
View view = layoutInflater.inflate(R.layout.list_groupname, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
ButtonGroup datum = mList.get(position);
holder.txtTitle.setText("" + datum.getGroupName());
datum.notifyAll();
}
public interface ItemClickListener {
void onItemClick(View view, int position);
}
@Override
public int getItemCount() {
return mList.size();
}
}
Это мой основной код активности
badp = new ButtonGroupAdp(mlist, this);
mlist = new ArrayList<>();
mlist = mobexInAppDb.getAllProductList(site);
myRecyclerView.setAdapter(badp);
Здесь m получает значения из sqlite
public List<ButtonGroup> getAllProductList(String siteCode) {
List<ButtonGroup> buttonGroups = new ArrayList<>();
Cursor cursor = null;
SQLiteDatabase db = this.getWritableDatabase();
cursor = db.rawQuery("SELECT DISTINCT groupName,groupId FROM ButtonGroups where parentGroupId='"+null+"' and siteCode='"+siteCode+"'", null);
if (cursor.getCount() != 0) {
while (cursor.moveToNext()) {
ButtonGroup buttonGroup = new ButtonGroup(cursor.getString(0),cursor.getString(1));
buttonGroups.add(buttonGroup);
}
}
cursor.close();
return buttonGroups;
}
В основном я хочу поместите эти данные в мой горизонтальный вид ресайклера и при касании каждого элемента я должен узнать, какой из них щелкнул, но не знаю, почему я столкнулся с этой ошибкой, пожалуйста, помогите мне Это ошибка, которую я получаю
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mobex.inapp, PID: 17931
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
at com.mobex.inapp.Adapter.ButtonGroupAdp.getItemCount(ButtonGroupAdp.java:81)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:4044)
at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3534)