Android AutoCompleteTextView搜索并在List中返回结果,而不是默认下拉列表。
有没有办法可以重新设计并将AutoCompleteTextView的结果放入除默认列表设计之外的列表中?
在我的MainActivity中,我有这个:
String[]fruits = {"apple", "avocado", "banana", "blackberry", "blueberry", "coconut", "durian", "mango", "melon"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> stringArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_item, fruits);
AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autocom);
autoCompleteTextView.setAdapter(stringArrayAdapter);
autoCompleteTextView.setTextColor(Color.RED);
ListView lv = (ListView) findViewById(R.id.lv);
lv.setAdapter(stringArrayAdapter);
}
在我的xml中,
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android.autocompletenativesample.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="15dp"
android:text="Pick a Fruit"
android:id="@+id/tv"
/>
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:id="@+id/autocom"
android:layout_below="@+id/tv"
android:layout_marginLeft="36dp"
android:layout_marginTop="17dp"
android:completionThreshold="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ListView Implementation"
android:layout_below="@+id/autocom"
android:id="@+id/tv2"
/>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lv"
android:layout_below="@+id/tv2"
>
</ListView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RecyclerView Implementation"
android:layout_below="@+id/lv"
/>
</RelativeLayout>
此外,这是一个Visual Explanation。它将在AutoCompleteTextView字段中搜索,但结果将不会显示在下面而是显示在另一个布局上。
我是否应该编辑ArrayAdapter更改布局,或者使用实现AutoCompleteTextView的CustomAutoCompleteTextView或实现AutoCompleteTextView的EditText。
我希望将AutoCompleteTextView的结果格式化为这样。 RecyclerView and CardView Result design
感谢。
答案 0 :(得分:0)
我可以给你逻辑。看看这个链接。 http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/这也是http://www.tutorialsbuzz.com/2014/08/android-filters-for-simple-listview.html
并且过滤器在适配器中完成,因此首先使用空适配器绑定listview,并在textWatcher bindlistview中使用数据源过滤并通知更改。