我有一个AutocompleteTextView,它可以正常工作。当我输入单词时,它会显示相关结果,但我想在AutocompleteTextView中不输入任何单词的情况下显示所有项。我该怎么做?
我有一个AutocompleteTextView,它可以正常工作。当我输入单词时,它会显示相关结果,但我想在AutocompleteTextView中不输入任何单词的情况下显示所有项。我该怎么做?
这里提供一种使用onclicklistener的方法,因为我发现在尝试滚动时,onTouch有点烦人。mOccupation是相关的AutocompleteTextView。
mOccupation=(AutoCompleteTextView) findViewById(R.id.actv_occupation);
ArrayAdapter<String> occupationAdapter=new ArrayAdapter<String>
(NewClientActivity.this,
android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.occupation_array));
mOccupation.setAdapter(occupationAdapter);
mOccupation.setKeyListener(null);
mOccupation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//mOccupation.setText(null);
((AutoCompleteTextView) view).showDropDown();
return;
}
});
<android.support.design.widget.TextInputLayout
android:id="@+id/lo_occupation"
android:layout_marginTop="10dp"
android:layout_gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="occupation"
android:focusableInTouchMode="false"<--this is the important part
android:id="@+id/actv_occupation"
android:ems="10"
android:completionThreshold="0"<--this too
/>
</android.support.design.widget.TextInputLayout>
它帮助了我:
private AutoCompleteTextView autoCompleteTextViewRFID;
...
autoCompleteTextViewRFID = binding.choiceFieldRFID;
List<String> rfidArray = databaseManager.readCowsRFID();
ArrayAdapter<String> rfidAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_dropdown_item_1line, rfidArray);
autoCompleteTextViewRFID.setThreshold(1);
autoCompleteTextViewRFID.setAdapter(rfidAdapter);
...
autoCompleteTextViewTypeRange.setOnTouchListener((v, event) -> {
autoCompleteTextViewTypeRange.showDropDown();
return true;
});
XML:
<AutoCompleteTextView
android:id="@+id/typeRange"
android:gravity="center"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="match_parent"
android:layout_height="40dp" />
<com.google.android.material.textfield.TextInputLayout
android:layout_marginTop="10dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/select_area"
android:layout_width="match_parent"
android:layout_height="52dp"
android:padding="10dp"
android:textSize="15sp"
android:singleLine="true"
android:drawableEnd="@drawable/ic_arrow_down"
android:completionThreshold="0"
android:focusableInTouchMode="false"
android:hint="Select an Area"
android:inputType="text"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
JAVA
area_autocomplete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
area.showDropDown();
}
});
android:completionThreshold="0" android:focusableInTouchMode="false"
。 - CoolMind你可以简单地使用这一行代码
autoCompleteTextView.setThreshold(100);