Почему действие возвращается к предыдущему, когда я получаю данные из базы данных?

1

Я пишу программу в Android Studio (JAVA). Это карточный игровой менеджер, использующий сервисы firebase (база данных и аутентификация). Когда я получаю данные из базы данных в реальном времени, действие, которое должно показать их, не делает этого, и программа возвращается к основному действию.

В журнале нет ошибок.

    database = FirebaseDatabase.getInstance("https://gestionalebriscola-a8a93.firebaseio.com/");
    myRef = database.getReference("Tornei");
    myRef.keepSynced(true);
    myRef.addValueEventListener(new DataSingleHandler(this));
    listv_Tornei.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            showTorneoActivity(i);
        }
    });

//////Это вторая часть

    private class DataSingleHandler implements ValueEventListener{
    private Context context;
    public DataSingleHandler(Context context){
        this.context=context;
    }
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        torneiSulServer=new ArrayList<>();
        for(DataSnapshot snapshot : dataSnapshot.getChildren()){
            Log.d("GET",snapshot.toString());
            try{
                Torneo torneo  = snapshot.getValue(Torneo.class);
                torneiSulServer.add(torneo);
            } catch (Throwable e) {
                Log.d("GET", "onCreate eror", e);
            }
        }
        torneiSulServerAdapter = new ArrayAdapter<>(context,android.R.layout.simple_list_item_1,torneiSulServer);
        listv_Tornei.setAdapter(torneiSulServerAdapter);

    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }


    {private void showTorneoActivity(int i)
      { Intent intent = new Intent(this,ShowActivity.class); 
           Bundle data = new Bundle(); 
           data.putSerializable("TORNEO",
           torneiSulServer.get(i)); 
           intent.putExtra("TORNEO",data); 
           startActivity(intent); }}
Теги:
database
firebase
firebase-realtime-database

1 ответ

0

Решено, вам нужно было изменить showTorneoActivity и вставить его в правую часть кода с помощью setOnClickListener и проверить, что переменная, которую вы используете в функции, правильная и без нулевого указателя!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню