gpt4 book ai didi

java - 如何在android中使用TextWatcher进行查询?

转载 作者:行者123 更新时间:2023-12-01 19:34:55 25 4
gpt4 key购买 nike

我创建了一个 EditText,在其中输入一些名称。

我希望应用程序在每次 EditText 发生变化时执行搜索。

我使用了以下代码:

txt_search.addTextChangedListener( new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
query = txt_search.getText().toString();
fetchBooks(query);
}

@Override
public void afterTextChanged(Editable s) {
query = txt_search.getText().toString();
fetchBooks(query);
}
} );

其中 fetchBooks 是根据查询在 API 内执行搜索的方法。

我面临的问题是有时搜索会卡住。例如,如果我输入得很快,它只会给出前几个字母的结果,而不是最后整个查询的结果。

最终,我想要得到的是应用程序将不断地根据 EditText 内的文本执行搜索。

有没有办法在不卡住结果的情况下获得它?

谢谢

最佳答案

第一: 删除 AfterChangedListener 的搜索操作代码,因为在 EditText 中完全输入文本后,您的搜索操作会在 onTextChanged 监听器afterTextChanged 监听器 上执行

第二个txt_search.getText().toString();替换为's.toString()'

如下更改您的 TextWatcher

txt_search.addTextChangedListener( new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
query = s.toString();
fetchBooks(query);
}

@Override
public void afterTextChanged(Editable s) {

}
} );

有关更多信息,我建议您查看以下链接:

getText vs onTextChanged charSequence

android Edittext with textwatcher

关于java - 如何在android中使用TextWatcher进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58189222/

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