我希望更新文本视图 一旦我从回收器视图中删除一个项目。 仅当我转到另一个活动并返回到文本视图所在的活动时,文本视图才会更新。
private void getTasks() {
class GetTasks extends AsyncTask<Void, Void, List<Task>> {
@Override
protected List<Task> doInBackground(Void... voids) {
List<Task> taskList = DatabaseClient
.getInstance(getContext())
.getAppDatabase()
.taskDao()
.getAll();
return taskList;
}
@Override
protected void onPostExecute(final List<Task> tasks) {
super.onPostExecute(tasks);
final TasksAdapter adapter = new TasksAdapter(getContext(), tasks);
totalGoals = adapter.getItemCount();
if (tasks.size() > 0) {
adapter.notifyDataSetChanged();
introText.setVisibility(View.GONE);
} else {
makeMeShake(introText, 20, 10);
introText.setVisibility(View.VISIBLE);
getTasks();
}
int countTrue = 0 ;
for(int i = 0; i < tasks.size();i++){
// System.out.println("BOOLEANS" + " :"+i+": "+tasks.get(i).isFinished() + " :" +tasks.size());
if(tasks.get(i).isFinished()) {
countTrue++;
}
}
/* if (tasks.size() != 0) {
SharedPreferences sp = getActivity().getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("gCount", countTrue);
editor.apply();
}*/
System.out.println("True Items" + countTrue);
goalProgress.setText(MessageFormat.format("({0} out of {1})",
String.valueOf(countTrue), totalGoals));
adapter.notifyDataSetChanged();
recyclerView.setAdapter(adapter);
recyclerView.invalidate();
}
}
GetTasks gt = new GetTasks();
gt.execute();
}
我认为问题出在(数据集更改(。请帮助我,因为我一直在努力寻找一个简单的解决方案,直到现在都找不到。
使用这个添加
adapter.notifyDataSetChanged();
后
recyclerView.setAdapter(adapter);
把这个
recyclerView.setAdapter(adapter);
紧接着:
final TasksAdapter adapter = new TasksAdapter(getContext(), tasks);
adapter.notifyDataSetChanged((; ----您可以删除
只需在数据集更改后输入notifydatasetchanged。
(废话说完,将适配器分配给回收器视图后再放(