gpt4 book ai didi

java - v7 searchview重叠问题

转载 作者:行者123 更新时间:2023-12-01 11:53:45 24 4
gpt4 key购买 nike

举例说明我遇到了什么样的问题。

假设我在 ListView 中有 6 个元素,全部按从左到右的顺序排列 [1,2,3,51,4,5]。

当我搜索 5 时,它显示“51”和“5”。当我点击“51”时,它会打开“1”。问题是过滤后的列表与显示所有元素的 ListView 重叠。我想知道如何解决这个问题。我正在使用 v7.widget.SearchView

    @Override
public void onCreateOptionsMenu(final Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.recipe_menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.search_recipe).getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}

@Override
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
lv.clearTextFilter();
} else {
lv.setFilterText(newText.toString());
}
return true;
}
});
super.onCreateOptionsMenu(menu, inflater);
}

最佳答案

我认为你在 onItemClick(AdapterView<?> parent, View view, int position, long id) 中犯了错误方法。您可以从数据列表中按位置获取数据。 “位置”是列表中被点击的项目的位置。因此,如果您过滤列表并单击第一项,则位置值将为“1”。您必须从与单击位置相对应的适配器中获取值。您应该从适配器中获取项目,如下面的代码所示:

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
...

String data = ((ExerciseDAO)parent.getAdapter().getItem(position)).getTitle() ;

...
}
});

如果您有疑问 - 请提出。

关于java - v7 searchview重叠问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28592481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com