我试图搜索它,但无法获得任何适当的帮助。我试图保持列表视图中的第一项固定,然后从数据库中添加数据。我成功地显示了这种行为,但问题从我开始在列表视图中单击项目时使用,我单击的项目不正确...片段如下copyFetchedData具有来自数据库的数据
for(int i = 0;i<copyFetchedData.size();i++){
recentSearchedList.add(i, copyFetchedData.get(i).getName());
selectedAdapter.notifyDataSetChanged();
}
最近搜索列表.add(0, "我的位置");
在上面的代码片段中,最后一行覆盖了添加元素的位置并将我的位置放在第一个位置。现在 onitemclick 的代码片段如下。
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
if (displayList == arg0) {
if(position == 0){
editLocation.setText("");
}
else{
String fetchedName = (String) displayList.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), "Name is "+fetchedName, Toast.LENGTH_LONG).show();
Constants.searchedLocLat = copyFetchedData.get(position).getLat();
Constants.searchedLocLon = copyFetchedData.get(position).getLon();
Constants.searchedLocName = copyFetchedData.get(position).getName();
editLocation.setText(Constants.searchedLocName);
}
}
}
我使用它得到的输出获取了错误位置的元素。我知道它是因为我在位置 0 处强行添加元素,这会导致这种行为,有人可以告诉我正确的方法吗?