您可以按照以下步骤执行此操作。
- 检查用户输入的单词在您的列表视图中是否可用。
- 如果是,则分别获取该单词在数组列表或您的列表视图中的 id 或位置。
- 然后将选择设置为检索到的 ID。
如果您仍然无法获得 id,请发布您正在使用字符串数组自定义数组适配器的代码
溶胶:
你的情况可能是这样的
此代码应该在您的 oncreate 或您正在初始化列表视图的任何地方
HashMap<String,String> map=new HashMap<String, String>();
for(int i=0; i<arrlist.size();i++)
{
map.put(arrlist.get(i).trim().toLowerCase(), ""+i+1);
}
从哈希映射中获取值
此代码将在您的搜索按钮上单击
String id= map.get("yourserchitem")
lv.setSelection(Integer.parseInt(id)-1);
在文本转换器上写下这段代码
这里 e 是我的编辑文本的对象
e.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if(arr.contains(e.getText().toString().trim().toLowerCase()))
{
String id= map.get(e.getText().toString().trim().toLowerCase());
lv.setSelection(Integer.parseInt(id)-1);
}
}
});
使用 afterTextChanged 更改代码
String middle_string="";
for(int i=0;i<arr.size();i++)
{
if(arr.get(i).startsWith(e.getText().toString().trim().toLowerCase()))
{
middle_string=arr.get(i);
break;
}
}
if(arr.contains(middle_string))
{
String id= map.get(middle_string);
lv.setSelection(Integer.parseInt(id)-1);
}