要获取ListView项的ID而不是列表视图上的位置,可以通过以下步骤实现:
以下是一个示例代码:
// 自定义适配器
public class MyAdapter extends ArrayAdapter<String> {
private List<String> itemList;
private List<Integer> itemIdList;
public MyAdapter(Context context, int resource, List<String> items, List<Integer> itemIds) {
super(context, resource, items);
itemList = items;
itemIdList = itemIds;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setTag(itemIdList.get(position)); // 将标识符与项关联起来
return view;
}
}
// 在使用ListView的地方
ListView listView = findViewById(R.id.listView);
List<String> items = new ArrayList<>();
List<Integer> itemIds = new ArrayList<>();
// 填充数据源
items.add("Item 1");
items.add("Item 2");
items.add("Item 3");
// 为每个项生成唯一的ID
itemIds.add(1);
itemIds.add(2);
itemIds.add(3);
// 创建适配器并设置给ListView
MyAdapter adapter = new MyAdapter(this, android.R.layout.simple_list_item_1, items, itemIds);
listView.setAdapter(adapter);
// 获取ListView项的ID
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int itemId = (int) view.getTag(); // 获取与项关联的标识符
// 使用项的ID进行后续操作
// ...
}
});
在这个示例中,我们使用自定义的适配器来为每个项设置一个唯一的ID,并将其与项关联起来。然后,在ListView的点击事件中,可以通过获取与项关联的标识符来获取项的ID,从而进行后续操作。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云