gpt4 book ai didi

android - 从 `AutoCompleteTextView` 获取当前建议

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:07 25 4
gpt4 key购买 nike

您如何在 AutoCompleteTextView 中获得当前的最佳建议?我有它建议的项目,并且我注册了一个文本更改监听器。我在同一屏幕上也有一个列表。在他们键入时,我想将列表滚动到当前的“最佳”建议。但我不知道如何访问当前的建议,或者至少是最重要的建议。我想我正在寻找类似 AutoCompleteTextView.getCurrentSuggestions() 的东西:

autoCompleteTextView.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
String currentText = autoCompleteTextView.getText();
String bestGuess = autoCompleteTextView.getCurrentSuggestions()[0];
// ^^^ mewthod doesn't exist
doSomethingWithGuess(bestGuess);
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// do nothing
}
public void afterTextChanged(Editable s) {
// do nothing
}
});

最佳答案

我已经用下面的代码完成了你想做的事情:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.autocomplete_1);

adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.edit);
textView.setAdapter(adapter);

adapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
Log.d(TAG, "dataset changed");
Object item = adapter.getItem(0);

Log.d(TAG, "item.toString "+ item.toString());
}
});
}

item.toString 将打印显示在第一个项目上的文本。

请注意,即使您尚未显示弹出窗口(建议),也会发生这种情况。此外,您应该检查是否有任何项目通过了过滤条件(也就是用户的输入)。

解决第一个问题:

    int dropDownAnchor = textView.getDropDownAnchor();
if(dropDownAnchor==0) {
Log.d(TAG, "drop down id = 0"); // popup is not displayed
return;
}
//do stuff

要解决第二个问题,使用getCount > 0

关于android - 从 `AutoCompleteTextView` 获取当前建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3954244/

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