我已經在android中實現了android主/明細流模板。我已經改變它,以便在第一次加載時從數據庫加載數據。該列表填充罰款。在android上更新數據更改的主/明細列表視圖
我有一個刷新按鈕,它調用帶有回調的asyncTask,它使用http有效更新數據並更新數據庫。我現在需要更新列表中的數據。我已經嘗試了幾種方法來更新recyclerView,但它只是不會更新。有任何想法嗎。
public void refreshWeatherCharts() {
WeatherChartFetchData callbackservice = new WeatherChartFetchData(this) {
@Override
public void receiveData(boolean success) {
if (success)
WeatherChartListBuilder.loadData();
// RecyclerView.Adapter adapter = ((RecyclerView) recyclerView).getAdapter();
RecyclerView rc = (RecyclerView) recyclerView;
rc.invalidate();
}
};
callbackservice.execute(null, null, null);
}
private void setupRecyclerView(@NonNull RecyclerView recyclerView) {
recyclerView.setAdapter(new SimpleItemRecyclerViewAdapter(WeatherChartListBuilder.ITEMS));
}
/////////
public class SimpleItemRecyclerViewAdapter
extends RecyclerView.Adapter<SimpleItemRecyclerViewAdapter.ViewHolder> {
private final List<WeatherChart> mValues;
public SimpleItemRecyclerViewAdapter(List<WeatherChart> items) {
mValues = items;
}
public void updateData(ArrayList<WeatherChart> viewModels) {
mValues.clear();
mValues.addAll(viewModels);
notifyDataSetChanged();
}
public void addItem(int position, WeatherChart viewModel) {
mValues.add(position, viewModel);
notifyItemInserted(position);
}
public void removeItem(int position) {
mValues.remove(position);
notifyItemRemoved(position);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.weatherchart_list_content, parent, false);
return new ViewHolder(view);
}
你需要調用'SimpleItemRecyclerViewAdapter.updateData()'在'refreshWeatherCharts()'方法。 – Abbas
感謝您的重播。當我添加語句時,它不識別updateData語句。我是否必須在全球範圍內聲明或初始化/參考它如何?乾杯 –
管理對其進行排序。我將recyclerView重構爲以下 –