У меня есть вкладки запросов, в которых «ПОЛУЧЕНО» извлекает данные из BD Firebase в RecycleView. Этот запрос сделан пользователем и получен компанией. Теперь как мне сделать следующее:
1 - Представитель компании нажимает на элемент входящего запроса, чтобы отобразить AlertDialog, нужно ли отвечать на запрос.
2 - Если вы ответите, удалите пункт «ПОЛУЧЕНО» и появитесь в «УЧАСТНИКЕ». Если нет, появитесь в «ОЖИДАНИИ».
Если возможно, также оповестите пользователя об этих действиях. Спасибо всем, кто помогает.
Код:
public class SolicRecebidaFragment extends Fragment {
private RecyclerView recyclerViewListaSolicitacao;
private DatabaseReference refSolicitacao, database ;
private AdapterSolicitacoes adapter;
private ArrayList<DadosSolicitacao> listaSolicitacoes = new ArrayList<>();
private ValueEventListener valueEventoSolicitacao;
private String idUsuario;
public SolicRecebidaFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_solicitacao_recebida, container, false);
//Config.Inciais
recyclerViewListaSolicitacao = view.findViewById(R.id.recyclerView_ListaSolicitacao);
//Config.Referenciar nó de recuperação dos dados
// idUsuario = IdUsuarioFirabase.getIdentificadorUsuario();
database = ConfiguracaoFirebase.getFirebaseDataBase();
refSolicitacao = database
.child("solicitacao_coleta");
//Config.Adapter
adapter = new AdapterSolicitacoes(listaSolicitacoes, getActivity());
//Config.RecyclerView
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity());
recyclerViewListaSolicitacao.setLayoutManager( layoutManager);
recyclerViewListaSolicitacao.setHasFixedSize(true);
recyclerViewListaSolicitacao.addItemDecoration( new DividerItemDecoration(getActivity(), LinearLayout.VERTICAL));
recyclerViewListaSolicitacao.setAdapter( adapter );
//Evento de click
recyclerViewListaSolicitacao.addOnItemTouchListener(
new RecyclerItemClickListener(getActivity(), recyclerViewListaSolicitacao,
new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Toast.makeText(getActivity(), "Item clicado",
Toast.LENGTH_SHORT).show();
}
@Override
public void onLongItemClick(View view, int position) {
Toast.makeText(getActivity(), "Item pressionado",
Toast.LENGTH_SHORT).show();
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
}
})
);
return view;
}
@Override //Exibi lista ao carregar o fragment
public void onStart() {
super.onStart();
recuperarSolicitacao();
}
@Override // Remove lista ao sair do fragment
public void onStop() {
super.onStop();
refSolicitacao.removeEventListener(valueEventoSolicitacao);
}
public void recuperarSolicitacao (){
valueEventoSolicitacao = refSolicitacao.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
listaSolicitacoes.clear();
for ( DataSnapshot dados: dataSnapshot.getChildren() ){
// Log.i("DADOS COLETA FIREBASE", dataSnapshot.getValue().toString());
DadosSolicitacao solicitacao = dados.getValue(DadosSolicitacao.class);
listaSolicitacoes.add( solicitacao );
}
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
Итак, мне нужно было бы создать слушателя в посетителе фрагмента запроса, чтобы фиксировать изменения щелчка полученного фрагмента запроса?
да, и ваш слушатель firebase также срабатывает при изменении данных в firebase




да, возможно, использовать настраиваемый прослушиватель щелчков для адаптера. ваш слушатель firebase сработает автоматически при обновлении данных. так что ваш
onDataChangeat позвонит. ты можешь справиться там