【发布时间】:2019-11-04 16:46:02
【问题描述】:
我使用链接哈希映射创建了一个包含项目和子项目的自定义列表视图。我想设置项目点击监听器并通过意图将点击的项目作为字符串传递给下一个活动。
最终的ListView resultsListView = (ListView) findViewById(R.id.results_listview);
final LinkedHashMap<String, String> nameAddresses = new LinkedHashMap<>();
nameAddresses.put(getString(R.string.a), getString(R.string.location_a));
nameAddresses.put(getString(R.string.b), getString(R.string.location_b));
nameAddresses.put(getString(R.string.c), getString(R.string.location_c));
nameAddresses.put(getString(R.string.d), getString(R.string.location_d));
nameAddresses.put(getString(R.string.e), getString(R.string.location_e));
nameAddresses.put(getString(R.string.f), getString(R.string.location_f));
nameAddresses.put(getString(R.string.g), getString(R.string.location_g));
nameAddresses.put(getString(R.string.h), getString(R.string.location_h));
List<HashMap<String, String>> listItems = new ArrayList<>();
SimpleAdapter adapter = new SimpleAdapter(this, listItems, R.layout.list_item,
new String[]{"First Line", "Second Line"},
new int[]{R.id.text1, R.id.text2});
Iterator it = nameAddresses.entrySet().iterator();
while (it.hasNext())
{
LinkedHashMap<String, String> resultsMap = new LinkedHashMap<>();
Map.Entry pair = (Map.Entry)it.next();
resultsMap.put("First Line", pair.getKey().toString());
resultsMap.put("Second Line", pair.getValue().toString());
listItems.add(resultsMap);
}
resultsListView.setAdapter(adapter);
resultsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String itemClicked=nameAddresses.get(position);
Intent intent=new Intent(seeAllHospitalsCategory.this, departments_category.class);
intent.putExtra("Hospital Selected", itemClicked);
startActivity(intent);
}
});
get(position) 正在抛出一个空值。输出应该是 id text1 中包含的文本。例如,当我单击第一项时,它应该将 R.string.a 中的值传递给结果活动
【问题讨论】: