Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-使用EditText在线自动完成_Android_Autocomplete_Search Engine - Fatal编程技术网

Android-使用EditText在线自动完成

Android-使用EditText在线自动完成,android,autocomplete,search-engine,Android,Autocomplete,Search Engine,我想通过EditText获得一个在线自动完成,不是结果列表,而是直接在EditText中获得最佳建议。 类似这样的内容:(靠近页面底部) 在安卓系统中可能吗? 谢谢。Android有一个自动完成文本视图,可以完成你想要的工作 根据官方的Android文档 “AutoCompleteTextView是一个可编辑的文本视图,在用户键入时自动显示完成建议。建议列表显示在下拉菜单中,用户可以从中选择一个项目来替换编辑框的内容 可随时按后退键取消下拉列表,如果下拉列表中未选择任何项目,则按enter/dp

我想通过EditText获得一个在线自动完成,不是结果列表,而是直接在EditText中获得最佳建议。 类似这样的内容:(靠近页面底部)

在安卓系统中可能吗?
谢谢。

Android有一个
自动完成文本视图
,可以完成你想要的工作

根据官方的Android文档

AutoCompleteTextView
是一个可编辑的文本视图,在用户键入时自动显示完成建议。建议列表显示在下拉菜单中,用户可以从中选择一个项目来替换编辑框的内容

可随时按后退键取消下拉列表,如果下拉列表中未选择任何项目,则按enter/dpad center键取消下拉列表

建议列表从数据适配器获得,仅在阈值定义的给定字符数之后出现。”


有关示例代码片段,请参考

我现在没有eclipse,因此我将尝试给您一些提示

要创建一个自定义的自动完成,我会这样做

弗斯特 在视图布局中添加EditText和OutputText(可见性=隐藏)

第二 在“活动”中,创建一个TextWatcher并实现afterTextChanged方法

在该方法中,使用输入文本调用服务,然后更新输出文本的内容

比如:

afterTextChanged(Editable s){
  // you know your input is an EditText
  final EditText input= (EditText) s;
  // TODO make this call async
  String suggestedText= someService.getSuggestion(input.getString());
  outputText.setText(suggestedText);
  outputText.setVisibility(View.VISIBLE);
  // to avoid infinite loops
  if(suggestedText!=null && !"".equals(suggestedText) && !suggestedText.equals(input.getString())
  {
    // add a onclick control to update the input
    outputText.setOnClickListener(new View.OnClickListener(){
        editText.setText(suggestedText);
    });
  }

}
第三
实施建议服务。

对于autocomplete,您必须使用另一种称为AutocompleteTextView或MultiAutocompleteTextView的EditText类型。您可以找到该选项的简单示例


另外,如果您想创建自己的列表过滤类型,您的适配器类必须实现接口

您可以在EditText上添加一个监视程序,并在视图中显示任何小部件。您可以更明确一些吗?请先举一个您需要的示例。如果需要自定义组件(请先选中AutoCompleteTextView),可以向edittext添加手表。手表会告诉您用户的输入何时发生了更改,以便您可以调用服务来加载建议的条目。检查此url developer.android.com/reference/android/text/TextWatcher.htmlI没有足够的声誉发布图像。。。但在我前面的链接中,您可以看到一个示例(在线自动完成部分)。好的,但是什么服务呼叫可以在EditText中显示不同颜色的建议?谢谢您的回答@Fareya,我已经看到AutoCompleteTextView,但我不想有列表。只有一个结果像提示一样显示在EditText中。我的上一个链接显示了一个简短的示例(在线自动完成部分)。谢谢,我将尝试这样做!