Для создания функционала загрузки данных для RecyclerView вам необходимо использовать адаптер, который будет отображать данные из источника (например, базы данных) в RecyclerView. Ниже приведен пример того, как можно улучшить процесс загрузки данных во фрагменте HistoryFragment:
1. Инициализируйте RecyclerView в методе onCreateView() фрагмента HistoryFragment:
```java
RecyclerView recyclerView = view.findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
```
2. Создайте метод инициализации адаптера и observer для получения данных из базы данных и передачи их в адаптер:
```java
private void initAdapter() {
HistoryAdapter adapter = new HistoryAdapter();
recyclerView.setAdapter(adapter);
// Инициализируйте observer для получения данных из базы данных
ViewModelProvider provider = new ViewModelProvider(this);
HistoryViewModel viewModel = provider.get(HistoryViewModel.class);
viewModel.getHistoryList().observe(getViewLifecycleOwner(), historyList -> {
adapter.setData(historyList);
});
}
```
3. Пример кода адаптера HistoryAdapter:
```java
public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHolder> {
private List<HistoryItem> historyList = new ArrayList<>();
public void setData(List<HistoryItem> data) {
historyList.clear();
historyList.addAll(data);
notifyDataSetChanged();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.history_item, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
HistoryItem historyItem = historyList.get(position);
// Привязка данных к ViewHolder
}
@Override
public int getItemCount() {
return historyList.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(@NonNull View itemView) {
super(itemView);
// Инициализация View элементов
}
}
}
```
Таким образом, вы можете улучшить процесс загрузки данных в RecyclerView во фрагменте HistoryFragment, используя адаптер и observer для получения данных из базы данных и обновления RecyclerView. Данные будут автоматически обновляться при изменении в базе данных.