سلام..
موقعی که تسکی رو اد میکنم و با استفاده از اینترفیس هندلش میکنم همه چیز خوب پیش میره و هم داخل دیتابیس ذخیره میشه هم داخل لیست تسک هام توی ریسایکلر ویو، اما توی متد addTask موقعی که notifyItemInserted رو فراخونی میکنم، اتفاقی نمیوفته و آیتم رو نمایش نمیده، روی حالت دیباگم تست کردم، موقتی که این متد صدا زدهه میشه، متد onbindeViewHolde هم داخل ادپتر صدا زده نمیشه..
بعضیا گفته بودن که متد setHasStableids مقدارشو true بزار درست میشه.. ولی حل نشد..
ممنون میشم کمکم کنین..
public void addTask(Task task) { tasks.add(0, task); notifyItemInserted(0); }
@Override public void onNewTask(Task task) { long taskId = taskDao.addTask(task); if (taskId != -1) { task.setId(taskId); myDayAdapter.addTask(task); }else { Log.e(TAG, "onNewTask: Error!"); } }
package com.example.tdo.Adapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.example.tdo.Model.Task; import com.example.tdo.R; import java.util.ArrayList; import java.util.List; public class MyDayAdapter extends RecyclerView.Adapter<MyDayAdapter.MyDayViewHolder> { private List<Task> tasks = new ArrayList<>(); @NonNull @Override public MyDayViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_myday, parent, false); return new MyDayViewHolder(view); } public void addTask(Task task) { tasks.add(0, task); notifyItemInserted(0); } public void addItems(List<Task> tasks){ this.tasks.addAll(tasks); notifyDataSetChanged(); } @Override public void onBindViewHolder(@NonNull MyDayViewHolder holder, int position) { holder.onBind(tasks.get(position)); } @Override public int getItemCount() { return tasks.size(); } public class MyDayViewHolder extends RecyclerView.ViewHolder { private CheckBox checkBox; private TextView title; private TextView description; public MyDayViewHolder(@NonNull View itemView) { super(itemView); checkBox = itemView.findViewById(R.id.item_checkbox); title = itemView.findViewById(R.id.item_Title); description = itemView.findViewById(R.id.item_description); itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { return false; } }); } public void onBind(Task task){ checkBox.setChecked(task.isCompleted()); title.setText(task.getTitle()); description.setText(task.getDescription()); } } }