public class

SearchEditText

extends androidx.leanback.widget.StreamingTextView

 java.lang.Object

↳EditText

↳androidx.leanback.widget.StreamingTextView

↳androidx.leanback.widget.SearchEditText

Gradle dependencies

compile group: 'androidx.leanback', name: 'leanback', version: '1.2.0-alpha04'

  • groupId: androidx.leanback
  • artifactId: leanback
  • version: 1.2.0-alpha04

Artifact androidx.leanback:leanback:1.2.0-alpha04 it located at Google repository (https://maven.google.com/)

Androidx artifact mapping:

androidx.leanback:leanback com.android.support:leanback-v17

Androidx class mapping:

androidx.leanback.widget.SearchEditText android.support.v17.leanback.widget.SearchEditText

Overview

EditText widget that monitors keyboard changes.

Summary

Constructors
publicSearchEditText(Context context)

publicSearchEditText(Context context, AttributeSet attrs)

publicSearchEditText(Context context, AttributeSet attrs, int defStyle)

Methods
public booleanonKeyPreIme(int keyCode, KeyEvent event)

public voidsetOnKeyboardDismissListener(SearchEditText.OnKeyboardDismissListener listener)

Sets a keyboard dismissed listener.

from androidx.leanback.widget.StreamingTextViewisLayoutRtl, onFinishInflate, onInitializeAccessibilityNodeInfo, reset, setCustomSelectionActionModeCallback, setFinalRecognizedText, updateRecognizedText, updateRecognizedText
from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public SearchEditText(Context context)

public SearchEditText(Context context, AttributeSet attrs)

public SearchEditText(Context context, AttributeSet attrs, int defStyle)

Methods

public boolean onKeyPreIme(int keyCode, KeyEvent event)

public void setOnKeyboardDismissListener(SearchEditText.OnKeyboardDismissListener listener)

Sets a keyboard dismissed listener.

Parameters:

listener: The listener.

Source

/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
package androidx.leanback.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.KeyEvent;

import androidx.leanback.R;

/**
 * EditText widget that monitors keyboard changes.
 */
public class SearchEditText extends StreamingTextView {
    private static final String TAG = SearchEditText.class.getSimpleName();
    private static final boolean DEBUG = false;

    /**
     * Interface for receiving notification when the keyboard is dismissed.
     */
    public interface OnKeyboardDismissListener {
        /**
         * Method invoked when the keyboard is dismissed.
         */
        public void onKeyboardDismiss();
    }

    OnKeyboardDismissListener mKeyboardDismissListener;

    public SearchEditText(Context context) {
        this(context, null);
    }

    public SearchEditText(Context context, AttributeSet attrs) {
        this(context, attrs, R.style.TextAppearance_Leanback_SearchTextEdit);
    }

    public SearchEditText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
            if (DEBUG) Log.v(TAG, "Keyboard being dismissed");
            // Delay focus on result because focus to result in EditText.onKeyPreIme(KEYCODE_BACK).
            // If set focus too early, the activity will be closed.
            if (mKeyboardDismissListener != null) {
                post(new Runnable() {
                         @Override
                         public void run() {
                             if (mKeyboardDismissListener != null) {
                                 mKeyboardDismissListener.onKeyboardDismiss();
                             }
                         }
                     });
            }
        }
        return super.onKeyPreIme(keyCode, event);
    }

    /**
     * Sets a keyboard dismissed listener.
     *
     * @param listener The listener.
     */
    public void setOnKeyboardDismissListener(OnKeyboardDismissListener listener) {
        mKeyboardDismissListener = listener;
    }
}