Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Listview不会第一次填充_Android_Firebase_Listview_Firebase Realtime Database_Android Arrayadapter - Fatal编程技术网

Android Listview不会第一次填充

Android Listview不会第一次填充,android,firebase,listview,firebase-realtime-database,android-arrayadapter,Android,Firebase,Listview,Firebase Realtime Database,Android Arrayadapter,我正在创建一个ListView,方法是在open活动中填充ArrayList,然后在另一个活动中将其作为ListView打开 当我打开第二个活动时,我的列表视图仅在我打开该活动时填充,而获取问题活动将打开为空白。当我返回并重新进入活动时(第二次调用Get_Issue.class)。然后填充列表视图 我猜屏幕是在创建/填充listView之前加载的 如何改进代码,以便在我第一次调用Get\u问题活动时填充listView。我不想打开一个空的活动 class ProfileActivity exte

我正在创建一个
ListView
,方法是在open活动中填充
ArrayList
,然后在另一个活动中将其作为
ListView
打开

当我打开第二个活动时,我的
列表视图
仅在我打开该活动时填充,而
获取问题
活动将打开为空白。当我返回并重新进入活动时(第二次调用Get_Issue.class)。然后填充
列表视图

我猜屏幕是在创建/填充listView之前加载的

如何改进代码,以便在我第一次调用
Get\u问题
活动时填充listView。我不想打开一个空的活动

class ProfileActivity extends AppCompatActivity implements View.OnClickListener {
    DatabaseReference databaseIssue;
    public static List<Issue> issueList = new ArrayList<>();
    public static List<Issue> getIssueList() {
        return issueList;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);

        getData = (Button) findViewById(R.id.getData);
        databaseIssue  = FirebaseDatabase.getInstance().getReference("Issue");
    }

    private void getTheData(){
        databaseIssue.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                issueList.clear();
                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                    Issue getData = postSnapshot.getValue(Issue.class);
                    issueList.add(getData);}}
        });
    }
    public void onClick(View view) {
        if(view == getData){
            getTheData();
            startActivity(new Intent(this, Get_Issue.class));
        }
    }
}
class ProfileActivity扩展AppCompatActivity实现View.OnClickListener{
数据库参考数据库问题;
public static List issueList=new ArrayList();
公共静态列表getIssueList(){
返回发行列表;
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
getData=(按钮)findViewById(R.id.getData);
databaseIssue=FirebaseDatabase.getInstance().getReference(“问题”);
}
私有void gethedata(){
databaseIssue.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
issueList.clear();
对于(DataSnapshot postSnapshot:DataSnapshot.getChildren()){
Issue getData=postSnapshot.getValue(Issue.class);
issueList.add(getData);}
});
}
公共void onClick(视图){
如果(视图==getData){
gethedata();
startActivity(新意图(这个,Get_Issue.class));
}
}
}
适配器类

public class Get_Issue extends AppCompatActivity {
    public void populateListView() {
        List<Issue> issues = ProfileActivity.getIssueList();

        ArrayAdapter<Issue> adapter = new ArrayAdapter<>(
                this,
                R.layout.da_item,
                issues);

        ListView list = findViewById(R.id.listView);
        list.setAdapter(adapter);
    }
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.issue_list);
        populateListView();
    }
}
公共类获取问题扩展了AppCompative活动{
public void populateListView(){
列出问题=ProfileActivity.getIssueList();
ArrayAdapter适配器=新的ArrayAdapter(
这
R.layout.da_项目,
问题);
ListView列表=findViewById(R.id.ListView);
list.setAdapter(适配器);
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.issue_列表);
populateListView();
}
}

populateListView()
在您的
Get\u问题
活动中准备好时,
gethedata()
可能还没有完成。这就是我在想的,是否有办法解决这个问题,使
populateListView()
gethedata()
完成之前不会完成?