RecyclerView不显示来自数据库片段中的数据



我试图使用RecyclerView显示列表,但它没有显示从我的片段。请帮助这是我的片段代码:

公共类ActivityLogSection扩展Fragment {

按钮addActivity;DBHelper DBHelper;

ActivityAdapter activityAdapter;
ArrayList<String> activityName, activityTime;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView =  inflater.inflate(R.layout.activity_log_section, container, false);
RecyclerView recyclerView =  rootView.findViewById(R.id.recyclerView);
FragmentActivity ac = getActivity();
recyclerView.setLayoutManager(new LinearLayoutManager(ac));
addActivity = rootView.findViewById(R.id.addActivity);
addActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), AddActivity.class);
startActivity(intent);
}
});

dbHelper = new DBHelper(getContext());
activityName = new ArrayList<>();
activityTime = new ArrayList<>();
storeActivityDataInArray();
activityAdapter = new ActivityAdapter(getContext(), activityName, activityTime);
recyclerView.setAdapter(activityAdapter);

return rootView;
}

public void storeActivityDataInArray() {
Cursor cursor = dbHelper.getActivityData();
if (cursor.getCount() == 0) {
Toast.makeText(getActivity(), "No data present in the database", Toast.LENGTH_SHORT).show();
}else {
while(cursor.moveToNext()) {
activityName.add(cursor.getString(0));
activityTime.add(cursor.getString(1));
}
}
}

}

下面是我的适配器代码:

公共类ActivityAdapter扩展RecyclerView.Adapter

etActivityTime.setInputType(InputType.TYPE_NULL);
etActivityTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDateAndTimeDialog(etActivityTime);
}
});
calendar = showDateAndTimeDialog(etActivityTime);
simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm");
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DBHelper dbHelper = new DBHelper(AddActivity.this);
String activityName = etActivityName.getText().toString().trim();
String activityTime = simpleDateFormat.format(calendar.getTime());
dbHelper.addActivity(activityName, activityTime);
}
});
}
private Calendar showDateAndTimeDialog(EditText date_time_input) {
Calendar calendar = Calendar.getInstance();
DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
android.app.TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm");
date_time_input.setText(simpleDateFormat.format(calendar.getTime()));
}
};
new TimePickerDialog(AddActivity.this, timeSetListener,  calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), false).show();
}
};
new DatePickerDialog(this, dateSetListener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show();
return calendar;
}

}

我不明白为什么会这样,请帮帮我

gettitemcount()方法的内部适配器类应该传递实际列表大小而不是0

@Override
public int getItemCount() {
return 0; //here pass your list size(activityName.size())
}

最新更新