4

我想在 AutoCompleteTextView 的下拉建议列表右侧添加 PgUp/PgDn 按钮。我使用上述布局创建了自己的弹出窗口(布局 xml 如下所示)。谁能让我知道如何用我自己的弹出窗口替换 AutoCompleteTextView 的下拉列表视图?

这是我想要的样子:

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

    <ListView
        android:id="@+id/listView"
        android:layout_width="0dp"
        android:layout_height="wrap_content" 
        android:layout_weight="9"
        android:background="@drawable/frame">
    </ListView>
    <RelativeLayout android:id="@+id/pageUpDown" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent">
        <ImageButton android:id="@+id/pageUp" android:src="@drawable/pct_up_icon" android:background="@null"  android:layout_width="48dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:text="" android:layout_height="48dp"></ImageButton>
        <ImageButton android:id="@+id/pageDown" android:src="@drawable/pct_down_icon" android:background="@null" android:layout_width="48dp" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:text="" android:layout_height="48dp"></ImageButton>
    </RelativeLayout>

</LinearLayout>
4

3 回答 3

2

为了简单地完成此操作,我建议您设计布局(带有两个按钮)并设置为您AutoCompleteTextView的如下:

android:completionHintView="@layout/your_custom_view"

稍后,您可以自定义按钮的单击事件以执行所需的分页操作。

于 2012-11-19T16:58:34.413 回答
0

前段时间我自己问过这个问题,我自己也找到了解决方案。在这里检查:

AutoCompleteTextView 下拉菜单上的样式

于 2012-11-19T16:57:41.250 回答
0

使用 AutocompleteTextView,设置高阈值“setTreshold()”并在按钮单击时调用 showDropDown()

代码:

String[] values = {
"abc_0", "def_0", "ghi_0",
"abc_1", "def_1", "ghi_1",
"abc_2", "def_2", "ghi_2",
"abc_3", "def_3", "ghi_3",
};

 final AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.actv);
 final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, values);
actv.setAdapter(adapter);
actv.setThreshold(256); // if not enough set Integer.MAX_VALUE
findViewById(R.id.button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
    CharSequence constraint = actv.getText();
    adapter.getFilter().filter(constraint);
    actv.showDropDown();
}
}); 
于 2013-12-19T07:06:06.940 回答