getItem或getItemId是主要设计用于附加列表中的项目数据的方法。在getItem的情况下,您可以传递将附加到列表中的项目的任何对象。通常人们会返回null。 getItemId是您可以使用列表中的同一项目附加的任何唯一long值。人们通常会返回列表中的位置。
有什么用。那么,因为这些值绑定到列表中的项目,您可以提取它们时,用户点击该项目。这些值可通过AdapterView方法访问。
// template class to create list item objects
class MyListItem{
public String name;
public long dbId;
public MyListItem(String name, long dbId){
this.name = name;
this.dbId = dbId;
}
}
///
// create ArrayList of MyListItem
ArrayList myListItems = new ArrayList(10);
// override BaseAdapter methods
@Override
public Object getItem(int position) {
// return actual object
// which will be available with item in ListView
return myListItems.get(position);
}
@Override
public long getItemId(int position) {
// return id of database document object
return myListItems.get(position).dbId;
}
///
// on list item click, get name and database document id
my_list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
// extract item data
MyListItem selectedItem = (MyListItem)parent.getItemAtPosition(position);
System.out.println("Your name is : " + selectedItem.name);
// extract database ref id
long dbId = id;
// or you could also use
long dbId = parent.getItemIdAtPosition(position);
}
});