8

我可能在这里遗漏了一些简单的东西,但我有一个AutoCompleteTextView包含一些很长的项目。单击一个时,它会在 EditText 中正确显示文本并将其跨越几行。

但是,我也希望它在弹出窗口的多行中,以便用户可以看到他们正在选择的项目。

这是我的自定义布局:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:ellipsize="none"
    android:maxLines="100"
    android:scrollHorizontally="false" />

这是我对数组和适配器的初始化:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                R.layout.dropdown_item_wrap_line,
                getResources().getStringArray(R.array.building_descriptions));

mBuildingDesc.setAdapter(adapter);
4

1 回答 1

13

我的猜测是您AutoCompleteTextView仅限于singleLine,因此使用默认的自定义布局TextView应该可以很好地工作。

您将需要创建一个新Layout名称并为其命名custom_item.xml,然后像这样进行操作...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView 
        android:id="@+id/autoCompleteItem"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:textSize="14sp"    
        />

</LinearLayout>

然后在 AutoCompleteTextView 上使用适配器时

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete);
ArrayAdapter<String> adapter  = new ArrayAdapter<String>(this, R.layout.custom_item, R.id.autoCompleteItem, StringArray);
textView.setAdapter(adapter);
于 2013-03-26T16:59:59.960 回答