自动完成文本字段

时间:2015-07-27 11:19:23

标签: android autocomplete android-edittext textview

在我的应用程序中,我有一个场景,那就是我想向用户显示所需的数字范围,这些将是动态的,比方说1,2,3或一段时间,1,2或某些时间1,2 ,3,4,5我希望用户选择我给定范围内的数字。这样我就不希望用户通过输入数字填写。请告诉我如何实现这一点以及如何控制自动完成textview中的数字范围。

或者是什么的替代品。请记住,我有Edittext,在该edittext中,我希望用户选择数字而不只是输入数字。

2 个答案:

答案 0 :(得分:1)

您可以在布局中使用AutoCompleteTextView

XML代码

<AutoCompleteTextView android:id="@+id/EdtSearch"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"/>

JAVA代码 要绑定AutoCompleteTextView内的数组,请使用以下代码

AutoCompleteTextView EdtSearch = (AutoCompleteTextView) findViewById(R.id.EdtSearch);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, rangesyouwantasStringArray);
EdtSearch.setAdapter(adapter);

答案 1 :(得分:0)

为什么不使用Spinner?我认为,为了您的目的,它更有效率。 您可以将EditText更改为Spinner并使用其适配器以编程方式更改范围。

编辑:

这是您必须插入的元素而不是edittext

<Spinner android:id="@+id/spinner"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>

然后,在您的活动/片段代码中:

Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1);
spinner.setAdapter(adapter);

// Here add the range of numbers. For example:
for (int i = 0; i < 5; i++) {
    adapter.add(Integer.toString(i));
}