我希望用戶以任何順序選擇圖像、pdf 和任何其他文檔,并將它們放在 recyclerView 中。我對(duì)他們每個(gè)人都有不同的布局。到目前為止,我正在從所選圖像或 pdf 中獲取 Uri 和文件名,并將它們放入列表中。@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == CHOOSE_IMAGE && resultCode == Activity.RESULT_OK){ if (data.getData()!=null){ uriDocument = data.getData(); } String filename = getFilename(uriDocument); fileNameList.add(filename); mAdapter.notifyDataSetChanged(); }else if (requestCode == PICK_ATTACHMENT && resultCode == RESULT_OK && data != null && data.getData() != null){ uriDocument= data.getData(); String filename = getFilename(uriDocument); fileNameList.add(filename); mAdapter.notifyDataSetChanged(); } } 我有一個(gè)適配器類,它現(xiàn)在只包含一個(gè)布局:@NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view; view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_image_message, parent, false); return new ViewHolder(view); }這是 getFilename() 方法:public String getFilename(Uri uri){ String result =null; if (uri.getScheme().equals("content")){ Cursor cursor = getContentResolver().query(uri,null,null,null,null); try{ if (cursor!=null&&cursor.moveToFirst()){ result = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)); } }finally { cursor.close(); } } if (result == null){ result = uri.getPath(); int cut = result.lastIndexOf("/"); if (cut!=-1){ result = result.substring(cut+1); } } return result; }如何根據(jù)文檔的類型(即圖像或 pdf)制作兩種不同的布局?
2 回答

暮色呼如
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
首先,您必須清楚如何區(qū)分不同的文件。即來自文件名或其他字段。
現(xiàn)在您可以使用以下兩種解決方案中的任何一種: 1. 在 RecyclerView 的適配器中使用多種視圖類型。 2. 如果你只需要為不同的文件顯示不同的圖標(biāo),那么你可以通過添加一些檢查來做到這一點(diǎn)。
添加回答
舉報(bào)
0/150
提交
取消