Android怎样将一个HashMap<String, List<String>>的内容显示给用户
时间: 2024-04-30 12:19:42 浏览: 110
要将一个 `HashMap<String, List<String>>` 的内容显示给用户,可以使用 `ListView` 控件和适配器(`Adapter`)来实现。
首先,需要创建一个适配器类,继承自 `BaseAdapter` 类,并实现其抽象方法。在适配器类中,可以将 `HashMap` 中的键(`key`)作为列表项的标题(`TextView`)显示,将对应的值(`value`)作为子项(`ListView`)显示。
以下是一个简单的示例代码:
```
public class MyAdapter extends BaseAdapter {
private HashMap<String, List<String>> mData;
public MyAdapter(HashMap<String, List<String>> data) {
mData = data;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.keySet().toArray(new String[0])[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);
}
String key = (String) getItem(position);
List<String> values = mData.get(key);
TextView titleTextView = (TextView) convertView.findViewById(android.R.id.text1);
titleTextView.setText(key);
ListView valueListView = (ListView) convertView.findViewById(R.id.value_list);
valueListView.setAdapter(new ArrayAdapter<String>(parent.getContext(), android.R.layout.simple_list_item_1, values));
return convertView;
}
}
```
然后,在 `Activity` 中,创建一个 `ListView` 控件,并设置其适配器为上面创建的 `MyAdapter`,即可将 `HashMap` 中的内容显示给用户。
```
HashMap<String, List<String>> data = new HashMap<>();
// TODO: 添加数据到 HashMap 中
ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(new MyAdapter(data));
```
阅读全文