2

我有麻烦。我正在使用 Google Maps Api v2,并创建了一个基本工具栏,就像在 Google Maps App 中一样。那里有一个 AutoCompleteTextBox 。

问题是当我按下“DONE”按钮时(当屏幕处于纵向模式时),actionId==0KeyEvent==0,但是当我按下标记的操作按钮时(当屏幕处于横向模式时)它工作,但完成按钮不起作用。

在java代码实现中,我写道:

autoCompleteTextView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            boolean handled = false;
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                //Log.i("AutoCompleteTextView", "Evento onEditorAction ... ");
                search();
                handled = true;
            }
            Log.i("AutoCompleteTextView", "Evento onEditorAction ... " + actionId);
            return handled;
        }
    });

在我使用的 XML 布局中:

<AutoCompleteTextView
    android:id="@+id/autoText"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:layout_marginLeft="48dp"        
    android:layout_marginBottom="6dp"
    android:layout_marginRight="6dp"
    android:gravity="bottom"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@color/fontColorMenu"
    style="@style/AutoCompleteTextViewAppTheme"
    android:imeActionLabel="Buscar"
    android:imeOptions="actionDone"
    android:hint="Ingrese ciudad"
    android:inputType="text"/>

所以我不知道出了什么问题,我正在使用targetSdkVersion 22,在 Android Lollipop 上使用我的Moto G并使用Android Studio 1.1.0

4

1 回答 1

2

是的你是对的。因为您使用自己的文本“Buscar”而不是默认的“完成”。要克服您的问题,请更改 EditorAction 方法代码。

 public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        boolean handled = false;
        if (actionId == event.ACTION_DOWN) {
              search();
              handled = true;
        }
        return handled;

 }
于 2015-07-16T03:04:03.313 回答