마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 코드 실행 순서

0 추천
public class OrderRecord extends AppCompatActivity {
    final FirebaseFirestore dbList = FirebaseFirestore.getInstance();
    private ListView listview;
    private String dbText;
    private TextView text1;
    private Button btn;
    private Button btn2;
    private String str ;


    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_listview); // a에서 activity_listview 변경

        listview = (ListView)findViewById(R.id.listview);
        text1 = (TextView)findViewById(R.id.text1);
        btn = (Button)findViewById(R.id.btn);
        btn2 = (Button)findViewById(R.id.btn2);

        ArrayList<String> arrayList = new ArrayList();


        
                DocumentReference docRef = dbList.collection("order").document("info");
                docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                        if (task.isSuccessful()) {
                            DocumentSnapshot document = task.getResult();
                            if (document.exists()) {
                                Toast.makeText(getApplicationContext(), "성공", Toast.LENGTH_SHORT).show();
                                text1.setText(document.getData().toString());
                                str = text1.getText().toString();
                              
                            } else {

                            }
                        } else {

                        }
                    }
                });


        Toast.makeText(getApplicationContext(), "성공1", Toast.LENGTH_SHORT).show();
        arrayList.add("test");

        Toast.makeText(getApplicationContext(), "성공2", Toast.LENGTH_SHORT).show();
        arrayList.add(str);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, arrayList);
        Toast.makeText(getApplicationContext(), "성공3", Toast.LENGTH_SHORT).show();
        listview.setAdapter(adapter);

     


    }
    

}

위에서부터 아래로 코드가 실행되기 때문에 arrayList에 추가할 내용을 먼저 firebase에서 가져온 다음 arrayList.add(str)해서 추가를 하려 했는데 모든 코드가 다 실행된이후 firebase에서 데이터를 가져오는 코드가 실행이됩니다.

text1에는 firebase에서 가져온 데이터를 정확하게 출력했습니다 

성공이라는 토스트 메시지가 성공1 성공2 성공3 성공 이 순서대로 나옵니다.

arrayList에 데이터를 추가 하기 전에 firebase에서 데이터를 가져오고 싶은데 어떻게 해야하나요...?

질문을 작성하면서 주석 처리된 코드를 지우면서  { } 이것들의 갯수 오류가 있을거 같네요.. 근데 안드로이드스튜디오에서 코드는 잘 작동합니다.

개미1 (1,260 포인트) 님이 2021년 11월 5일 질문

1개의 답변

0 추천
spark (226,420 포인트) 님이 2021년 11월 5일 답변
...