Hy Developers, Я новичок в разработке для Android, поэтому столкнулся с проблемой сохранения и просмотра данных в моем приложении для Android .
Я знаю, что данные можно получить, только когда вы подключены к Интернету.
Но дело в том, что данные извлекаются, а также отображаются в журнале Android.
Но когда я пытаюсь сохранить его в строковую переменную или в массив для отображения
в основном действии, использующем этот список или переменную, не работает.
Я объявляю частную строковую переменную для хранения значения из базы данных firebase перед методом onCreate.
Извините за мой вопрос. Но это проблема, с которой я сталкиваюсь.
Ниже приведен код , который я использую, и несколько скриншотов, чтобы сделать вопрос понятным.
public class MainActivity extends AppCompatActivity {
private static final String TAG = "Firelog" ;
Button ans1, ans2, ans3, ans4;
TextView uscore, question, timer;
private String mAnswer;
private ArrayList<String> fbquestions = new ArrayList<String>();
private String quest;
private int mScore = 0;
Random r = new Random();
private int res = 0;
private int c = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
uscore = (TextView) findViewById(R.id.uscore);
question = (TextView) findViewById(R.id.question);
timer = (TextView) findViewById(R.id.timer);
ans1 = (Button) findViewById(R.id.ans1);
ans2 = (Button) findViewById(R.id.ans2);
ans3 = (Button) findViewById(R.id.ans3);
ans4 = (Button) findViewById(R.id.ans4);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("mcqs");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Map <String, String> map = (Map)dataSnapshot.getValue();
quest = map.get("question");
fbquestions.add(quest);
Log.v("E_Value","Question is" + quest);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
question.setText(String.valueOf(fbquestions.get(0)));
}
}

На картинке выше вы можете видеть, что вопрос успешно получен из firebase и виден в журнале.

Но здесь, когда я пытаюсь отобразить вопрос на главном экране после назначения, отображается пустым.

После добавления кода для добавления значения в arraylist происходит сбой приложения.