按键后如何获取编辑文本的文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按键后如何获取编辑文本的文本相关的知识,希望对你有一定的参考价值。

我想在用户在EditText中键入文本时搜索ListView。按下一个键后,我需要获取文本的打字部分才能开始搜索。所以有什么方法可以用吗?简单的帮助非常感谢。

答案

如果你使用ArrayAdapter填充你的ListView,那么这样做:

   edittext.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) {

            yourAdapter.getFilter().filter(s);
    }

    @Override
    public void afterTextChanged(Editable s) {

    }
});

TextWatch添加到EditText并在适配器中使用filter以显示匹配的结果。要突出显示匹配的结果,您可能希望使用SpannableString来“漂亮”它。

来自ArrayAdapter.getFilter()

返回可用于使用过滤模式约束数据的过滤器。

此方法通常由Adapter类实现。

另一答案

你可以在你的活动中实现TextWatcher,看看:

http://developer.android.com/reference/android/text/TextWatcher.html

另一答案

假设你有一个xml视图

<EditText
  android:id="@+id/search"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:inputType="text"
  android:imeOptions="actionSend" />

您在控制器中的代码将是

  final EditText searchField = (ListView)result.findViewById(R.id.search);;
  searchField.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) {

      }

      @Override
      public void afterTextChanged(Editable s) {
          //do search is the method where you will delegate the search process.
          doSearch(searchField.getText().toString());
      }
  });
另一答案

您必须将TextWatcher设置为您的edittext

edittext.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) {

        }

        @Override
        public void afterTextChanged(Editable s) {
             String newText = s.toString();
        }
    });

以上是关于按键后如何获取编辑文本的文本的主要内容,如果未能解决你的问题,请参考以下文章

OnItemClick 如何从列表视图中获取单击项目的文本值

通过 id 从片段获取编辑文本到其托管活动

从父活动android获取片段编辑文本值

按下键后如何获取编辑文本的文本

易语言 取某窗口句柄后然后后台对这个窗口后台模拟按键

Vue3中文本只显示三行,超过部分在文字后显示省略号和展开按键