textView 上的选择器需要两次单击才能执行操作

Selector on textView requierd two click to do action

我的 textView 上有选择器行。

selector.xml :

  <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--<item android:drawable="@drawable/select_white" android:state_activated="true"/>-->
    <item android:drawable="@drawable/select_white" android:state_pressed="true"/>
    <item android:drawable="@drawable/select_white" android:state_selected="true"/>
    <item android:drawable="@drawable/select_white" android:state_focused="true"/>
    <item android:drawable="@drawable/select_none"/>
</selector>

我将 textView 设置为背景:

                   <TextView
                    android:id="@+id/displayPlace"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:clickable="true"
                    android:text="@string/place"
                    android:textColor="@color/white"
                    android:background="@drawable/selector"
                    android:textSize="@dimen/text_main"/>

当我点击文本视图选择器时看起来很好,但我必须对我的点击进行操作,所以要执行我的操作需要点击两次,我试图删除 android:focusableInTouchMode="true" 行但它使选择器可见一秒钟就消失了。

如何在第一次点击选择器时执行操作?

我的点击次数:

place.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            fragment = new PlaceFragment();
            replaceFragment(fragment);
            Fragment fragment2 = getFragmentManager().findFragmentByTag(TAG_FRAGMENT);
            if (fragment2 != null)
                getFragmentManager().beginTransaction().remove(fragment2).commit();
        }
    });

双击有两种方式

1) 在 OnClickListener 中使用计时器 https://gist.github.com/srix55/ec64d2f6a371c80bbbc4
2) 使用 GestureDetector onDoubleTap 侦听器 and

只需尝试使用 setOnFocusChangeListener 而不是 setOnClickListener