java - 如何在片段的警报对话框中使用recycleview
问题描述
recycleView
我在显示里面的alertdialog
项目时遇到问题Fragment
我展示的项目是文件名。
这是我正在做的设计结构>活动>片段>警报对话框
在我的 AlertDialog 中,我正在膨胀一个新布局以获得我的自定义设计,我可以在其中放置事件以打开存储并获取多个或单个文件。
在仅打开文件的代码下方
getActivity().startActivityForResult(intent, 1001);
这意味着我在我的活动中得到了结果OnActivityResult
private void browseDocuments(){
String[] mimeTypes =
{"application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document", // .doc & .docx
"application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation", // .ppt & .pptx
"application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", // .xls & .xlsx
"text/plain",
"application/pdf",
"application/zip"};
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
intent.setType(mimeTypes.length == 1 ? mimeTypes[0] : "*/*");
if (mimeTypes.length > 0) {
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
}
} else {
String mimeTypesStr = "";
for (String mimeType : mimeTypes) {
mimeTypesStr += mimeType + "|";
}
intent.setType(mimeTypesStr.substring(0,mimeTypesStr.length() - 1));
}
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE,true);
getActivity().startActivityForResult(intent, 1001);
}
下面的代码将 filesNames 添加到我的 Activity 中 OnActivityResult 的arraysList 中,它正在完美运行并获取文件
if (requestCode == 1001){
FileAdapter = new fileAdapter(announcement_fragment.FileListName);
LayoutInflater inflater = this.getLayoutInflater(); //Is this correct?
View dialogView = inflater.inflate(R.layout.add_announcement, null);
RecyclerView listFiles = dialogView.findViewById(R.id.containerForFiles);
listFiles.setLayoutManager(new LinearLayoutManager(dialogView.getContext()));
listFiles.setHasFixedSize(true);
listFiles.setAdapter(FileAdapter);
if(resultCode == RESULT_OK){
//Upload Mutliple
if(data.getClipData() !=null){
announcement_fragment.FileListName.clear();
// Toast.makeText(this,"Mutliple",Toast.LENGTH_LONG).show();
int count = data.getClipData().getItemCount();
int i=0;
while (i<count){
announcement_fragment.FileListName.add(getFileName(File));
FileAdapter.notifyDataSetChanged();
i++;
}
}else if(data.getData() != null){
announcement_fragment.FileListName.add(getFileName(File));
FileAdapter.notifyDataSetChanged();
}else{
//Do nothing
}
}
}
我在我的活动里面OnActivityResult
(见上面的代码)调用并设置适配器来通知适配器但它不起作用,接下来我不知道可以做些什么来实现它,我应该把适配器放在哪里来触发recycleview项目
解决方案
您可以先尝试使用 ListView,然后看看它是否有效。
问题可能出在您的代码上。
尝试使用ListView
,如果有效,则尝试RecycleView
.
推荐阅读
- python - 如何在pyspark中旋转具有动态列的表
- python-3.x - sqlite3.OperationalError:靠近“。”:语法错误
- vb.net - 带有货币的 GridView 单元格
- r - 如何使用 $ 将 R 数据框中的列粘贴到公式的循环中?
- visual-studio-code - 使用打开文件夹命令启动 VSCode Win 快捷方式
- sql - 如何在 2 个字段上进行旋转
- python - python和R中多项式回归的不同输出
- python - for循环和创建列表的问题
- java - 将 PDF 字符串/byteArray 转换/写入 pdf 文件
- rust - 如何创建一个指定超特征关联类型的特征?