【发布时间】:2017-10-22 05:37:09
【问题描述】:
我有一个 AlertDialog 实例,我将其用作文件选择对话框。它包括一个分层浏览功能 - 如果从列表中选择一个目录,它应该显示该目录中的文件列表。它还包括一个“上一级”按钮,可以返回到上一个文件夹。我需要一种方法来在对话框显示时更新 AlertDialog 对象的内置 ListView 的内容,而无需从其构建器重新加载对话框对象。我知道适配器存在,但我需要一种从定义的实例变量而不是外部 XML 资源加载数据的方法。我正在重写 onResume 方法以避免在按下按钮时关闭对话框,这就是我需要运行列表更新的地方。
这是我现在在 onResume 方法中用于选择按钮的 OnClick 侦听器的代码。
alertDialog.getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { @覆盖 public void onItemClick(AdapterView parent, View view, int position, long id) { 如果(位置 >= 0) { 字符串[] 列表 = getCurrentFileList(); 如果(列表[位置].equals(NO_ITEMS_TEXT)){ 返回; } // 如果选中的文件是目录,递归更新文件列表并重新显示。 if(getCurrentFileRefList()[位置].isDirectory()){ src = getCurrentFileRefList()[位置]; 解析文件列表(); //todo 从加载的文件列表中更新 ListView }else { // 如果所选项目是文件,则将值提供给处理程序并关闭对话框。 handler.handleEvent(DialogActionEventHandler.ResultID.SUBMITTED, getCurrentFileRefList()[position]); alertDialog.dismiss(); } } } });parseFileList(); 方法用于从选定的源文件中获取当前文件列表。
任何帮助将不胜感激!
【问题讨论】:
标签: java android listview user-interface dialog