Раскрывающийся список отображается при втором нажатии - AutoCompleteTextView с раскрывающимся списком
У меня есть AutoCompleteTextView
с простым раскрывающимся списком в моем Home.activity
и это прекрасно работает, но теперь мое приложение почти готово к публикации, я хочу удалить некоторые глюки пользовательского интерфейса, так что вот один.
Выпадающий на AutoCompleteTextView
содержит 8 названий городов, и он выглядит / прекрасно работает, но при первом нажатии на AutoCompleteTextview
, клавиатура всплывает, а затем при повторном нажатии появляется выпадающий список.
Я хочу, чтобы этот раскрывающийся список появлялся при первом нажатии на клавиатуре.
Вот мой код реализации.
<AutoCompleteTextView
android:layout_width="200dp"
android:layout_height="30dp"
android:hint="@string/select_city"
android:id="@+id/acT1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:background="@drawable/shape1"
android:textAlignment="center"
app:layout_constraintVertical_bias="0.25"
android:dropDownHeight="155dp"
android:cursorVisible="false"
android:maxLines="1"/>
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(
this, android.R.layout.simple_list_item_1, getResources()
.getStringArray(R.array.Loc_names));
textView1 = findViewById(R.id.acT1);
textView1.setAdapter(arrayAdapter);
textView1.setThreshold(1);
textView1.setCursorVisible(false);
textView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
textView1.showDropDown();
textView1.setCursorVisible(false);
hideKeyBoard(view);
selection = (String) parent.getItemAtPosition(position);
TastyToast.makeText(getApplicationContext(), selection,
TastyToast.LENGTH_LONG, TastyToast.SUCCESS);
imageView.setAlpha(.8f);
}
});
textView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View arg0) {
textView1.showDropDown();
textView1.setCursorVisible(true);
//imageView.setAlpha(.8f);
}
});
2 ответа
Просто добавьте Focus FALSE и Onclickable TRUE в AutoCompleteTextView
Попробуй с сенсорным слушателем
textview1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(event.getAction() == MotionEvent.ACTION_UP){
touching = false;
}else if(event.getAction() == MotionEvent.ACTION_DOWN){
touching = true;
handle event
}
return true;
}