自定义对话框中不可能有 Listview 吗?
Posted
技术标签:
【中文标题】自定义对话框中不可能有 Listview 吗?【英文标题】:Is it impossible to have ListvVew in Custom Dialog? 【发布时间】:2021-01-07 15:05:51 【问题描述】:如果代码中没有调用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();
【问题讨论】:
您是否介意在代码中更好地描述您的意图,提供的信息很难提供正确的答案 如果ListView
确实在Dialog
的room_list
布局中,那么你需要找到chat_list
,就像你是callFunction()
中的两个Button
s一样,来自Dialog
;例如,chat_list = dlg.findViewById(R.id.chat_list_or_whatever_the_id_is)
.
@MikeM。谢谢你的答案。我尝试使用您的建议代码,但遇到了同样的问题。
我们需要查看您更新的代码。请edit您的问题以更新您现在拥有的内容。
@MikeM。我尝试使用您为两个示例建议的代码,但没有成功。
【参考方案1】:
您的适配器依赖于 firebase。 它会等到它得到数据, 那我相信你需要打电话
adapter.notifyDataSetChanged();
之后
adapter.add();
【讨论】:
感谢您的回答。我尝试使用您的建议代码,但遇到了同样的问题。【参考方案2】:在处理对话框之类的视图时,重要的是在调用dialog.show()
之前加载对话框中所需的所有视图。
或者,我建议在此示例中使用DialogFragment:https://blog.mindorks.com/implementing-dialog-fragment-in-android。
DialogFragment
s 允许您像管理任何其他片段一样管理对话框。
让我知道你可以使用哪一个。
【讨论】:
以上是关于自定义对话框中不可能有 Listview 吗?的主要内容,如果未能解决你的问题,请参考以下文章