问题描述
如果未在代码中调用showChatList()
函数,并且对话框正常显示。
通过listView
函数调用showChatList()
时,它不起作用。
转到原始自定义对话框
是否可以调出listView?
public void callFunction() {
final Dialog dlg = new Dialog(context);
dlg.setContentView(R.layout.room_list);
dlg.show();
final Button okButton = (Button) dlg.findViewById(R.id.okButton);
final Button backbtn = (Button) dlg.findViewById(R.id.backbtn);
**final ListView chat_list = (ListView) dlg.findViewById(R.di.chat_list);**
- or
**chat_list = dlg.findViewById(R.id.chat_list);**
backbtn.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dlg.dismiss();
}
});
okButton.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dlg.dismiss();
}
});
showChatList();
}
解决方法
您的适配器取决于Firebase。 它将等待直到获得数据, 那我相信你需要打电话
adapter.notifyDataSetChanged();
之后
adapter.add();
,
处理诸如对话框之类的视图时,在调用dialog.show()
之前加载对话框中所需的所有视图很重要。
另外,我建议在此示例中使用DialogFragment:https://blog.mindorks.com/implementing-dialog-fragment-in-android。
DialogFragment
允许您像其他任何片段一样管理对话框。
让我知道您可以使用哪一个。