将Android一个HashMap<String, List<String>>中的value值代表文件路径,怎样将value值代表的文件名和文件路径分别赋值给Item有两行字的ListView了。
时间: 2023-06-18 13:05:29 浏览: 75
在Android中ListView多种Item布局的实现
您可以使用以下代码将HashMap中的value值(文件路径)转换为文件名和路径,并将其添加到ListView中:
```java
HashMap<String, List<String>> hashMap = new HashMap<String, List<String>>(); // 假设 HashMap 已经有值
List<String> fileList = new ArrayList<String>();
for (List<String> pathList : hashMap.values()) {
fileList.addAll(pathList);
}
List<String> fileNames = new ArrayList<String>();
for (String path : fileList) {
File file = new File(path);
fileNames.add(file.getName()); // 获取文件名
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_2, android.R.id.text1, fileNames) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text1 = (TextView) view.findViewById(android.R.id.text1);
TextView text2 = (TextView) view.findViewById(android.R.id.text2);
File file = new File(fileList.get(position));
text1.setText(file.getName()); // 设置文件名
text2.setText(file.getPath()); // 设置文件路径
return view;
}
};
```
这个代码中,我们先将HashMap中的value值(文件路径)全部提取出来,然后逐个获取文件名,最终将文件名和文件路径分别设置到ListView的两行文本中。注意,在ListView中显示两行文本需要使用自定义的ArrayAdapter,并在getView()方法中设置两行文本的内容。
阅读全文