android - 如何使用 autoCompleteTextView 作为下拉列表,如 Spinner?
问题描述
当我制作一个下拉列表时,我使用微调器制作它,但由于它缺少许多选项,而且我不想经历制作自定义列表的麻烦,我选择了autoCompleteTextView
从材质库中继承材质样式的一个下拉列表。
这是我的代码:
adaptor_tool.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
toolNo.setAdapter(adaptor_tool);
toolNo.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(toolSettings.this, ""+position, Toast.LENGTH_SHORT).show();
configurations.setToolNo(toolNo.getSelectedItemPosition());
if(configurations.setToolNo(position+1) == 0)
{
Toast.makeText(toolSettings.this, "Invalid tool number\n setting to default tool 1", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
这是我使用 Spinner 的时候。现在这是我使用 autoCompleteTextView 的时候:
autotxt.setAdapter(adaptor_tool);
autotxt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
for (String string : toolNum)
if (string.toLowerCase().equals(charSequence.toString().toLowerCase())) {
int pos = toolNum.indexOf(string);
configurations.setToolNo(?);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
我在 (?) 的位置写什么,就像我如何configurations.setToolNo(-------)
在给定位置为方法提供项目一样?
我尝试使用,onItemClickListner
但它不起作用,并且autoCompleteTextView
无法使用getSelectedItemPosition()
. 我希望该项目位于所选位置。
解决方案
推荐阅读
- node.js - 如何在路由调用中运行两个查询并返回两个对象?
- javascript - 如何将默认图像设置为画布?
- android - React Native 垂直交付进度条
- spring - spring kafka,如何优雅地关闭spring boot应用程序
- javascript - 当我单击删除按钮时,它只是刷新而不是删除
- java - 将长度值从一个活动传递到另一个活动时出现数组初始化错误
- powershell - PowerShell - 为什么 Get-ChildItem 不返回任何输出
- constants - 如何接受 ref 和 non ref 值作为函数参数
- c++ - 如何在第一个字符输入后忽略所有内容
- asp.net-mvc - Giraffe 中是否有与 Url.Content("~/") 等效的内容?