Java TextView上的RecyclerView项目计数仅在重新进入活动时更新。如何使其实时更新
我希望在从recyclerview中删除一个项目后,文本视图立即更新。文本视图仅在我转到其他活动并返回到文本视图所在的活动时更新。Java TextView上的RecyclerView项目计数仅在重新进入活动时更新。如何使其实时更新,java,android,Java,Android,我希望在从recyclerview中删除一个项目后,文本视图立即更新。文本视图仅在我转到其他活动并返回到文本视图所在的活动时更新。 private void getTasks() { class GetTasks extends AsyncTask<Void, Void, List<Task>> { @Override protected List<Task> doInBackground(V
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();
}
private void getTasks(){
类getTask扩展异步任务{
@凌驾
受保护列表背景(无效…无效){
List taskList=数据库客户端
.getInstance(getContext())
.getAppDatabase()
.taskDao()
.getAll();
返回任务列表;
}
@凌驾
受保护的void onPostExecute(最终列表任务){
super.onPostExecute(任务);
final TasksAdapter adapter=new TasksAdapter(getContext(),tasks);
totalGoals=adapter.getItemCount();
如果(tasks.size()>0){
adapter.notifyDataSetChanged();
introText.setVisibility(View.GONE);
}否则{
makeMeShake(introText,20,10);
introText.setVisibility(View.VISIBLE);
getTasks();
}
int countTrue=0;
对于(int i=0;i
我认为问题在于(数据设置)。请帮助我,因为我一直在努力寻找一个简单的解决办法,但到目前为止还没有找到任何解决办法 使用这个添加
adapter.notifyDataSetChanged();
之后
把这个
recyclerView.setAdapter(adapter);
紧接着:
final TasksAdapter adapter = new TasksAdapter(getContext(), tasks);
adapter.notifyDataSetChanged();----更改数据集后,只需将notifydatasetchanged放入即可删除
(在将适配器分配给RecycleView之后放置它)put
notifydatasetchanged
在将适配器分配给RecycleView之后,没有解决它。我想在我从recyclerview中删除项目后立即更改它。像现在刷新活动一样,我正在更新textview.totalGoals=tasks.size();不走运的人仍然不刷新:(谢谢你的快速反应!
final TasksAdapter adapter = new TasksAdapter(getContext(), tasks);