AutoCompleteTextView将“文字”设置为最可能的项

时间:2018-09-14 08:58:46

标签: android android-studio autocompletetextview

我使用的是默认 AutoCompleteTextView ,它是在 layout.xml 中创建的:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <AutoCompleteTextView
            android:id="@+id/autoComplete"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="true"
            android:layout_weight="1"
            android:ems="10"
            android:hint="title"
            android:imeOptions="actionNext"
            android:singleLine="true"/>

        <EditText
            android:id="@+id/editText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:gravity="center"
            android:inputType="numberDecimal"
            android:imeOptions="actionDone"
            android:singleLine="true"/>
</RelativeLayout>

比我初始化此 AutoCompleteTextView 并添加适配器。就我而言,我使用IME_ACTION_NEXT作为事件来设置 AutoCompleteTextView 的文本。

MainActivity.java

public class MainActivity extends AppCompatActivity {
    private ArrayAdapter<String> adapter_autocomplete_tags;
    String[] tags = new String[]{"food", "restaurant", "drink"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);

        adapter_autocomplete_tags = new ArrayAdapter<String>(this,android.R.layout.select_dialog_item, tags);

        final AutoCompleteTextView autocomplete = (AutoCompleteTextView) dialog_layout.findViewById(R.id.autoComplete);
        autocomplete.setThreshold(1);
        autocomplete.setAdapter(adapter_autocomplete_tags);
        autocomplete.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if(actionId == EditorInfo.IME_ACTION_NEXT){
                    //here I want to set the AutoCompleteTextView´s Text to the most likely value
                }
                return false;
            }
        });
    }
}

我的目标是,如果我键入“ f”并执行IME_ACTION_NEXT,则 AutoCompleteTextView 的文本将设置为“ food”(将文本设置为下拉菜单的第一个值)

我已经尝试使用:

autocomplete.performCompletion(); //does nothing

并且:

CharSequence s = autocomplete.getCompletionHint(); //returns null
autocomplete.setText(s);

我当然可以重新创建 AutoCompleteTextView 验证算法,但是我想使用它自己的验证算法。

编辑: 我决定重新创建AutoCompleteTextView算法。

0 个答案:

没有答案