gpt4 book ai didi

android - 在字符串类型listview Android上实现searchview

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:56 24 4
gpt4 key购买 nike

我有一个 items 列表,我想根据 item 开始不同的 Activity ,当我点击它时它会打开正确的 Activity 但是当我尝试搜索时从搜索 View 栏中列出项目,然后它会打开错误的 Activity 。

    listView = (ListView) findViewById(R.id.listView);
sv=(SearchView) findViewById(R.id.searchView1);
String[] values = new String[]{item1,item2,item3,item4,}
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_2, android.R.id.text1, values);
listView.setAdapter(adapter);
//linking from 1 item to other activity stars with if options//
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (position == 0) {
Intent myIntent = new Intent(view.getContext(), activity1.class);
startActivityForResult(myIntent,0);
}

if (position == 4) {
Intent myIntent = new Intent(view.getContext(), aactivity4.class);
startActivityForResult(myIntent,0);

}
}
});

sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String text) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onQueryTextChange(String text) {
adapter.getFilter().filter(text);
return false;
}
});

我不太了解编码,但任何人都可以解决我的问题..

最佳答案

您正在根据 position 开始您的 Activity ,但是当您进行搜索时 position 将被更改,因为列表将缩小并且 positions 将更改为获取与列表中指定位置关联的数据使用 getItemAtPosition

所以根据数据改变条件

 if (parent.getItemAtPosition(position).equals("item1")) {
Intent myIntent = new Intent(view.getContext(), activity1.class);
startActivityForResult(myIntent,0);
}

else if (parent.getItemAtPosition(position).equals("item2")) { // use any item value here you want
Intent myIntent = new Intent(view.getContext(), aactivity4.class);
startActivityForResult(myIntent,0);
}

注意:你也可以使用switch代替长ifelse-if ladder

例如你有三个字符串

item 1   position 0
item 2 position 1
item 3 position 2

在搜索项目 2 后,您的列表中有两个值接近您的搜索

item 2   position 0
item 3 position 1

所以位置会改变所以不要使用它而是使用数据

代码

       listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent = null;
// global string to class
selectedValue = String.valueOf(parent.getItemAtPosition(position));

if (selectedValue.equals("item1")) {
// ^^^ use any item value here you want
Intent myIntent = new Intent(view.getContext(), activity1.class);
startActivityForResult(myIntent,0);
}

else if (selectedValue.equals("item2")) {
Intent myIntent = new Intent(view.getContext(), aactivity4.class);
startActivityForResult(myIntent,0);
}
}
});

关于android - 在字符串类型listview Android上实现searchview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41482656/

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