具有自定义视图建议的AutoCompleteTextView

时间:2014-03-05 20:05:54

标签: java android android-arrayadapter

我需要实现一个AutoCompleteTextView,其中包含两个元素的视图:带有建议字符串的String(TextView)和与建议字符串对应的ImageView。 据我所知,到目前为止,我的适配器构造函数被调用如下:

new ArrayAdapter<String>(context,android.R.layout.simple_dropdown_item_1line,myStrList));

换句话说,我可以放入android.R.layout.simple_dropdown_item_1line,我自己的布局吗? 我知道我必须重新实现ArrayAdapter类。 到目前为止,我已经完成了以下工作:

  1. 我创建了xml布局文件,该文件将在适配器的重写GetView方法中膨胀
  2. 我有自己的ArrayAdapter实现,实际上我不知道如何实现
  3. @Override public View getView(int position, View convertView, ViewGroup parent) 但我不知道如何获取从用户输入的字符串并从中提取可能的建议并从getView方法处理所有这些。 有任何想法吗??谢谢

1 个答案:

答案 0 :(得分:0)

  

换句话说,我可以放入android.R.layout.simple_dropdown_item_1line,我自己的布局吗?

这正是你必须要做的。为每行定义具有所需输出的新布局,例如,将其命名为my_custom_dropdown_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <ImageView
       ... />

    <TextView
       ... />

</LinearLayout>

此布局将在每行中有一个ImageView后跟TextView。当您声明AutoCompleteTextView时,您只需要执行以下操作:

final YourCustomArrayAdapter customAdapter = new YourCustomArrayAdapter(context, R.layout.my_custom_dropdown_list, R.id.your_edittext_id, array_with_initial_values);

final AutoCompleteTextView> myACTV = (AutoCompleteTextView) findViewById(R.id.your_id));
myACTV.setAdapter(customAdapter);