我有一个自定义适配器,为列表视图(几个字段和一个图像)提供自定义视图。我改变了一些东西,由于某种原因,我的 clickListener 方法 parent.getItemAtPosition(position) 总是返回 null。不确定我所做的更改是如何产生这种效果的。单步执行时,它会正确触发,但由于某种原因,该值始终为空。你有什么可以看到的吗?
ListView airportResults = (ListView) findViewById( R.id.listAirportResults );
List<SearchResultsItem> items = getSearchResults(searchTerm);
ResultsAdapter = new SearchResultsAdapter(this, items);
airportResults.setAdapter(ResultsAdapter);
我的 getSearchResults(searchTerm) 返回列表视图中具有以下类型的项目:
List<SearchResultsItem>
然后是 onclick 监听器:
airportResults.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long duration) {
String sClickedItem = (String) parent.getItemAtPosition(position);
//do something with sClickedItem
}
});
从上面的代码来看,位置参数是正确的(我点击第一项,位置=0;我点击第四项,位置=3,等等)。父对象和视图对象都有值。但是,sClickedItem始终为空。
非常感谢,J