diff --git a/api/current.txt b/api/current.txt index 383cb9d2f2229..7e055d3830f17 100644 --- a/api/current.txt +++ b/api/current.txt @@ -27677,6 +27677,7 @@ package android.widget { method public void setDropDownVerticalOffset(int); method public void setDropDownWidth(int); method public void setListSelection(int); + method public void setOnDismissListener(android.widget.AutoCompleteTextView.OnDismissListener); method public void setOnItemClickListener(android.widget.AdapterView.OnItemClickListener); method public void setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener); method public void setText(java.lang.CharSequence, boolean); @@ -27685,6 +27686,10 @@ package android.widget { method public void showDropDown(); } + public static abstract interface AutoCompleteTextView.OnDismissListener { + method public abstract void onDismiss(); + } + public static abstract interface AutoCompleteTextView.Validator { method public abstract java.lang.CharSequence fixText(java.lang.CharSequence); method public abstract boolean isValid(java.lang.CharSequence); diff --git a/core/java/android/widget/AutoCompleteTextView.java b/core/java/android/widget/AutoCompleteTextView.java index 41e8452bd6c1c..e4d49818cc3c9 100644 --- a/core/java/android/widget/AutoCompleteTextView.java +++ b/core/java/android/widget/AutoCompleteTextView.java @@ -16,6 +16,7 @@ package android.widget; +import android.app.SearchManager.OnDismissListener; import android.content.Context; import android.content.res.TypedArray; import android.database.DataSetObserver; @@ -578,6 +579,23 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe return mItemSelectedListener; } + /** + * Set a listener that will be invoked whenever the AutoCompleteTextView's + * list of completions is dismissed. + * @param dismissListener Listener to invoke when completions are dismissed + */ + public void setOnDismissListener(final OnDismissListener dismissListener) { + PopupWindow.OnDismissListener wrappedListener = null; + if (dismissListener != null) { + wrappedListener = new PopupWindow.OnDismissListener() { + @Override public void onDismiss() { + dismissListener.onDismiss(); + } + }; + } + mPopup.setOnDismissListener(wrappedListener); + } + /** *

Returns a filterable list adapter used for auto completion.

* @@ -1206,6 +1224,19 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe CharSequence fixText(CharSequence invalidText); } + /** + * Listener to respond to the AutoCompleteTextView's completion list being dismissed. + * @see AutoCompleteTextView#setOnDismissListener(OnDismissListener) + */ + public interface OnDismissListener { + /** + * This method will be invoked whenever the AutoCompleteTextView's list + * of completion options has been dismissed and is no longer available + * for user interaction. + */ + void onDismiss(); + } + /** * Allows us a private hook into the on click event without preventing users from setting * their own click listener.