如何在Android中自定义AutoCompleteTextView的视图?

时间:2014-10-17 09:41:39

标签: android autocomplete

我有AutoCompleteView,用户可以在其中搜索其他用户。用户是一个自定义对象,由id,name组成。 AutoCompleteView是UsersAdapter的控制器。 UsersAdapter处理在建议中设置用户对象的视图。如何在用户名上设置要搜索的AutoCompleteView?我的意思是,自动完成应该基于用户名。

2 个答案:

答案 0 :(得分:0)

您应该在AutoCompleteTextView上使用addTextChangedListener。 之后,使用提供的3种方法之一调用另一个函数来处理包含用户名的列表。

这是一个例子:

recherche.addTextChangedListener(new TextWatcher()
    {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3)
        {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i2, int i3)
        {
            if (charSequence.length() > 1)
                searchSuggestions(charSequence);
        }

        @Override
        public void afterTextChanged(Editable editable)
        {
        }
    });

对于“搜索”方法,你可以找到许多在BDD上链接的例子,所以我使用asyncTask,但如果你已经存储了一个列表,请使用匹配函数。

Hoope有帮助。

答案 1 :(得分:0)

   mAutoCompleteTextViewStart = (AutoCompleteTextView) findViewById(R.id.etsource);
  mAutoCompleteTextViewDestination = (AutoCompleteTextView) findViewById(R.id.etdestination);
   final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
      android.R.layout.simple_dropdown_item_1line, mStringsStreet);
    mAutoCompleteTextViewStart.setAdapter(adapter);
   mAutoCompleteTextViewStart.setThreshold(1);
   mAutoCompleteTextViewDestination.setAdapter(adapter);

   <AutoCompleteTextView
        android:id="@+id/etsource"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="3dp"
        android:layout_weight="1"
        android:hint="Start"
        android:maxLines="2"
        android:padding="4dp"
        android:textSize="12sp" />