Android 如何使用光标在recyclerview中使用serachview后单击正确的项目?
我正在一个回收视图中使用searchview。我用光标处理所有数据,searchview运行良好,看起来一切正常。问题是,当我进行搜索并尝试单击该行时,我无法获得该行的正确数据。我得到了我之前进行搜索的行的数据。看来我找不到当前的正确位置 我想做的是,当我在搜索后出现的行中单击时,获取该行的正确数据 似乎当我显示searchview的数据时,recyclerview不会更新行的位置 提前谢谢 这是我的代码:Android 如何使用光标在recyclerview中使用serachview后单击正确的项目?,android,cursor,android-recyclerview,searchview,Android,Cursor,Android Recyclerview,Searchview,我正在一个回收视图中使用searchview。我用光标处理所有数据,searchview运行良好,看起来一切正常。问题是,当我进行搜索并尝试单击该行时,我无法获得该行的正确数据。我得到了我之前进行搜索的行的数据。看来我找不到当前的正确位置 我想做的是,当我在搜索后出现的行中单击时,获取该行的正确数据 似乎当我显示searchview的数据时,recyclerview不会更新行的位置 提前谢谢 这是我的代码: searchiew.setOnQueryTextListener(new SearchV
searchiew.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
displayResults(query + "*");
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
if (!newText.isEmpty()){
displaySearchResults(newText);
} else {
displayOldResults();
}
return false;
}
});
private void displayOldResults(){ //This is the results that I get when inflate the view in the first time
mAdapter = new ListDataRecycler(getActivity(), cursor, this);
mRecyclerView.setAdapter(mAdapter);
}
private void displaySearchResults(String query) {
Cursor cursorSearch = helpher.searchByInputText((query != null ? query : "@@@@"));
if (cursorSearch != null) {
mAdapter = new ListDataRecycler(getActivity(), cursorSearch, this);
mRecyclerView.setAdapter(mAdapter);
}
}
这是我点击的方法:
@Override
public void onRowClicked(View view, int position) {
int idx = mRecyclerView.getChildPosition(view);
if (actionMode != null) {
myToggleSelection(idx);
animatedContactPhoto(view);
return;
}else{
Intent intent = new Intent(getActivity(), ConversationChat.class);
Bundle extras = new Bundle();
extras.putInt("position", mRecyclerView.getChildPosition(view));
intent.putExtras(extras);
startActivity(intent);
}
}
使用apter并查看其
getItemId
methodHi。你到底是什么意思?在onRowClicked方法中?你能给我一点这方面的代码吗?对getItemId(int position)进行重写也会得到同样的结果。不要使用apter并查看其getItemId
methodHi。你到底是什么意思?在onRowClicked方法中?你能给我一点这方面的代码吗?对getItemId(int position)进行重写也会得到同样的结果。不工作