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()
完成之前不会完成?