O layout não aparece na minha fragment

05/04/2024

0

estou programando um aplicativo pro meu tcc e simplesmente, depois de adicionar os metodos de deleção e edição de tarefas, o layout que retornava as tarefas cadastradas pelo usuário não aparecem mais.

segue o codigo da minha fragment, que O ANDROID STUDIO DIZ NÃO TER NENHUM ERRO, to ficando maluco tentando consertar isso já, alguem ME AJUDAAAA


public class CalendarFragment extends Fragment {
private RecyclerView reciclagem;
private FloatingActionButton aBotao;
private FirebaseFirestore firestore;
private TarefasAdapter adapter;
private List<TarefasModel> mList;
private Query query;
private ListenerRegistration listRegis;


@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_calendar, container, false);

reciclagem = view.findViewById(R.id.recyclerlview);
aBotao = view.findViewById(R.id.floatingActionButton2);
firestore = FirebaseFirestore.getInstance();

reciclagem.setHasFixedSize(true);
reciclagem.setLayoutManager(new LinearLayoutManager(getContext()));

aBotao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NovaTarefa.newInstance().show(getChildFragmentManager(), NovaTarefa.TAG);
}
});

mList = new ArrayList<>();
adapter = new TarefasAdapter(this, mList);


ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new TouchHelper(adapter));
itemTouchHelper.attachToRecyclerView(reciclagem);
mostrarData();
reciclagem.setAdapter(adapter);


return view;
}

private void mostrarData() {
query = firestore.collection("tarefa").orderBy("hora", Query.Direction.DESCENDING);

listRegis = query.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot value, @Nullable FirebaseFirestoreException error) {
for (DocumentChange documentChange : value.getDocumentChanges()) {
if (documentChange.getType() == DocumentChange.Type.ADDED) {
String id = documentChange.getDocument().getId();
TarefasModel tarefasModel = documentChange.getDocument().toObject(TarefasModel.class).withId(id);
mList.add(tarefasModel);
adapter.notifyDataSetChanged();
}
}

listRegis.remove();
}
});
}

public void onDialogClose(DialogInterface dialogInterface)
{
mList.clear();
mostrarData();
adapter.notifyDataSetChanged();
}

@Override
public void onDestroy() {
super.onDestroy();
if (listRegis != null) {
listRegis.remove();
}
}

}


adapter que eu acredito ser responsável pela aprição das tarefas na fragment:



public class TarefasAdapter extends RecyclerView.Adapter<TarefasAdapter.MyViewHolder> {

private List<TarefasModel> listaTarefas;
private CalendarFragment cfragment;
private FirebaseFirestore firestore;
public TarefasAdapter(CalendarFragment calendarFragment, List<TarefasModel> listaTarefas){
this.listaTarefas = listaTarefas;
cfragment = calendarFragment ;
}


@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.tarefas, parent, false);
firestore = FirebaseFirestore.getInstance();

return new MyViewHolder(view);
}

public void delTarefa(int position){
TarefasModel tarefasModel = listaTarefas.get(position);
firestore.collection("tarefa").document(tarefasModel.TarefasId).delete();
listaTarefas.remove(position);
notifyItemRemoved(position);
}
public CalendarFragment getContext() {return cfragment;}
public void ediTarefa(int position){
TarefasModel tarefasModel = listaTarefas.get(position);

Bundle bundle = new Bundle();
bundle.putString("tarefa", tarefasModel.getTarefa());
bundle.putString("pendente", tarefasModel.getPendente());
bundle.putString("id", tarefasModel.TarefasId);

NovaTarefa addNovaTarefa = new NovaTarefa();
addNovaTarefa.setArguments(bundle);
addNovaTarefa.show(cfragment.getActivity().getSupportFragmentManager(), addNovaTarefa.getTag());
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {

TarefasModel tarefasModel = listaTarefas.get(position);
holder.mCheckBox.setText(tarefasModel.getTarefa());

holder.txtData.setText("a fazer " + tarefasModel.getPendente());

holder.mCheckBox.setChecked(toBoolean(tarefasModel.getStatus()));

holder.mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if (isChecked){
firestore.collection("tarefa").document(tarefasModel.TarefasId).update("status", 1);
}else{
firestore.collection("tarefa").document(tarefasModel.TarefasId).update("status", 0);
}
}
});
}

private boolean toBoolean(int status){
return status != 0;
}

@Override
public int getItemCount() {
return listaTarefas.size();
}

public class MyViewHolder extends RecyclerView.ViewHolder{

TextView txtData;
CheckBox mCheckBox;

public MyViewHolder(@NonNull View itemView){
super(itemView);

txtData = itemView.findViewById(R.id.txtdata);
mCheckBox = itemView.findViewById(R.id.mCheckBox);
}
}
}
sou novo na área de programação e estou terminando um técnico, quem puder me ajudar, serei E T E R N A M E N T E grato!
obs: as tarefas conseguem ser cadastradas numa boa, ficam no banco e tudo, elas só não estão aparecendo na fragment
Murillo

Murillo

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar