TextView不会首先点击

时间:2018-04-09 13:21:19

标签: android button textview onclicklistener

我有一个TextView,应该像按钮一样点击。

以下是代码:



<TextView
        android:id="@+id/play"
        style="@style/playButton"
        android:layout_width="0dp"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/homePlay"
        android:focusable="false"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"
        app:layout_constraintStart_toStartOf="@+id/guideline3"
        app:layout_constraintTop_toTopOf="parent" />
&#13;
&#13;
&#13;

现在当我点击它时,它第一次没有工作,但随后的点击工作正常。

这是Java代码:

&#13;
&#13;
TextView play = mActivity.findViewById(R.id.play);
play.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              play.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      System.out.println("------------CLICKED");
                  }
              });
          }
        });
&#13;
&#13;
&#13;

&#34; ------------点击&#34;只是在第二次点击时显示,而不是第一次。

提前致谢。

2 个答案:

答案 0 :(得分:2)

setOnClickListener

中删除嵌套的 play.setOnClickListener
play.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              System.out.println("------------CLICKED");
          }
        });

答案 1 :(得分:0)

修改您的代码段,如下所示,然后检查。

XML(删除焦点设置)

<TextView
        android:id="@+id/play"
        style="@style/playButton"
        android:layout_width="0dp"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/homePlay"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/guideline4"
        app:layout_constraintStart_toStartOf="@+id/guideline3"
        app:layout_constraintTop_toTopOf="parent" />

JAVA CODE(已删除嵌套的setOnClickListener)

TextView play = mActivity.findViewById(R.id.play);
play.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              System.out.println("------------CLICKED");
          }
        });