如何为Spinner之外的click事件设置侦听器?

时间:2018-09-12 12:47:47

标签: android

现在我已经单击了一个微调框,并且显示了DropDownView,我想在微调框之外单击并执行某些操作。

如何收听微调器之外的此点击事件?

我尝试了一些方法(例如Activity的覆盖dispatchTouchEvent())来解决此问题,但是我发现在显示DropDownView时无法执行方法dispatchTouchEvent()

//Kotlin
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
    //do something I want
    return super.dispatchTouchEvent(ev)
}

1 个答案:

答案 0 :(得分:0)

微调器的用户自定义对话框,使外部单击成为dialog.setCancelable(true)。

 final Dialog dialog = new Dialog(activity);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setCancelable(true);
        dialog.setContentView(R.layout.dialog);

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="80dp"
    android:background="#3E80B4"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/txt_dia"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="10dp"
        android:text="This is spinner"
        android:textColor="@android:color/white"
        android:textSize="15dp"
        android:textStyle="bold"/>


<Spinner
    android:id="@+id/size_spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:entries="@array/size_entries" />



</LinearLayout>