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
。然后第二次点击使用 OnClickListener
和 intent
你的代码应该只是这样的:
public void signInButton(View view) {
Intent showSignInActivity = new Intent(v.getContext(), SignInActivity.class);
startActivity(showSignInActivity);
}
这是文本视图 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
。然后第二次点击使用 OnClickListener
和 intent
你的代码应该只是这样的:
public void signInButton(View view) {
Intent showSignInActivity = new Intent(v.getContext(), SignInActivity.class);
startActivity(showSignInActivity);
}