Android: 禁止双击可点击的文本视图

Android: Disable double tap on clickable textview

这是文本视图 xml

<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="SIGN IN"
        android:id="@+id/signInTV"
        android:layout_gravity="center_horizontal"
        android:gravity="center"
        android:layout_weight="1"
        android:background="#EB7B59"
        android:textColor="#524656"
        android:clickable="true"
        android:onClick="signInButton"
        android:focusableInTouchMode="false"/>

这是代码:

public void signInButton(View view) {
    TextView signInTV = (TextView) findViewById(R.id.signInTV);
    signInTV.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent showSignInActivity = new Intent(v.getContext(), SignInActivity.class);
            startActivity(showSignInActivity);
        }
    });
}

为什么我仍然只能双击 textview 而不能单击?

您已经在点击事件处理程序中,并且您正在接收点击的视图作为参数,因此无需再次查找。 这应该启动 Activity.

public void signInButton(View view) {
    Intent showSignInActivity = new Intent(v.getContext(), SignInActivity.class);
    startActivity(showSignInActivity);
}

将您的代码更改为:

   public void signInButton(View view) {
        if(view.getId() == R.id.signInTV){    
                Intent showSignInActivity = new Intent(v.getContext(), SignInActivity.class);
                startActivity(showSignInActivity);
        }    
    }

您已经在 XML 代码中指定了一个 OnClickListener,您可以在第一个监听器中添加另一个监听器。这就是为什么你必须点击两次。

您是在第一次点击时重置 OnClickListener。然后第二次点击使用 OnClickListenerintent

你的代码应该只是这样的:

public void signInButton(View view) {
    Intent showSignInActivity = new Intent(v.getContext(), SignInActivity.class);
    startActivity(showSignInActivity);
}