【问题标题】:Is it impossible to have ListvVew in Custom Dialog?自定义对话框中不可能有 Listview 吗?
【发布时间】: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确实在Dialogroom_list布局中,那么你需要找到chat_list,就像你是callFunction()中的两个Buttons一样,来自Dialog;例如,chat_list = dlg.findViewById(R.id.chat_list_or_whatever_the_id_is).
  • @MikeM。谢谢你的答案。我尝试使用您的建议代码,但遇到了同样的问题。
  • 我们需要查看您更新的代码。请edit您的问题以更新您现在拥有的内容。
  • @MikeM。我尝试使用您为两个示例建议的代码,但没有成功。

标签: java android android-studio android-listview android-dialog


【解决方案1】:

您的适配器依赖于 firebase。 它会等到它得到数据, 那我相信你需要打电话

    adapter.notifyDataSetChanged();

之后

    adapter.add();

【讨论】:

  • 感谢您的回答。我尝试使用您的建议代码,但遇到了同样的问题。
【解决方案2】:

在处理对话框之类的视图时,重要的是在调用dialog.show() 之前加载对话框中所需的所有视图。 或者,我建议在此示例中使用DialogFragmenthttps://blog.mindorks.com/implementing-dialog-fragment-in-androidDialogFragments 允许您像管理任何其他片段一样管理对话框。

让我知道你可以使用哪一个。

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多