android - 带有 MySQL 数据的 AutoCompleteTextView

标签 android mysql android-asynctask autocompletetextview

我有一个 AutoCompleteTextView,我需要从 MySQL 表中建议名称。我之前只用过一次它,对字符串数组进行硬编码。

我只见过一个例子,位于 this链接,这确实没有多大帮助。我需要使用 AsyncTask 来完成此操作。我知道如何处理 AsynTask 部分,但这是我的问题:

我必须发送作为 taskparam 输入的短语的每个部分。从哪里获取此文本字符串

我能看到的唯一方法可能是TextWatcher。就这样吧,或者还有其他方法吗?

最佳答案

Would that be it, or is there another method?

您只需要一些机制来“观察”输入框中的变化,并且提到了如何实现它的最正确方法 TextWatcher

所以实现它并在一些提供 TextWatcher 的方法中例如onTextChanged() ,从输入框中分配数据并将它们作为参数发送给 AsyncTask 并在 onPostExecute() 方法中为您的 AutoCompleteTextView 创建新的适配器从 MySQL 检索数据并将适配器分配给您的小部件,您就得到了它。

伪代码:

public void onTextChanged(CharSequence s, int start, int before, int count) {
   if (s.length() > 1) {
      insertString = s.toString();
      new YourTask().execute(insertString);                  
   }
}

并在您的 AsyncTask 中执行如下操作:

protected List<String> doInBackground() {
   // fetchning data from MySQL
   return list;
}

public void onPostExecute(List<String> result) {
   if (!result.isEmpty()) {
       SomeAdapter adp = new SomeAdapter(context, layout, result);
       actv.setAdapter(adp);
   }
}

注意:根据您的情况,更容易制作 AsyncTask你的内部类Activity类,您可以直接访问 UI组件而不通过构造函数传递它们。

关于android - 带有 MySQL 数据的 AutoCompleteTextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16108185/

相关文章:

java - Duckduckgo Android 搜索 Intent

java - 如何在 Xamarin 中获取 AccessibilityManager 实例

Android 开发人员,无法找到原始资源

MySQL选择查询忽略特殊字符

android - asynctask是否不会与主线程并行运行

android - 找不到id(资源问题)

mysql - mysql中的计算和多重连接

mysql - 使用 Wordpress wp_postmeta 表中的数据创建新表

java - Android AsyncTask-to-Activity 回调 nullPointerException

java - 任务完成后返回