我正在开始 android 开发,在我的示例应用程序中,我有一个 ListView,我填充如下:
ListView listView = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getEntityLabels());
listView.setAdapter(adapter);
getEntityLabels()
是一个返回字符串列表的函数。
在底层模型中,标签不是唯一的。相反,每个实体都有一个id
对每个实体都是唯一的字段。
class Entity{
int id;
String label;
}
当用户点击 ListView 中的某个项目时,我想做一些处理。所以,我添加了一个 ItemClickListener 如下:
listView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
//I would like to get the Id of the Entity, not just the label
}});
处理取决于id
实体的。但是,由于列表中的视图只是一个文本并且只包含标签,我无法访问它。
有没有办法在视图中嵌入一些信息,如 id(在我的情况下)或获取id
s 的替代方法?
我知道我可以覆盖返回标签的toString()
方法并使用而不是. 但是,我不是在寻找这个。我正在寻找一种更通用的方式,如果可能的话,我可以在任何视图中嵌入任何信息!Entity
ArrayAdapter<Entity>
ArrayAdapter<String>