2016-02-24 3 views
0

Это XML для TextViewAndroid: Отключить двойное нажатие на интерактивном TextView

<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 а не однократное нажатие?

ответ

1

Вы уже находитесь в обработчике событий click, и вы получаете нажатый параметр View as, поэтому нет необходимости его снова искать. Это должно начать действие.

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

Измените свой код:

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

Вы уже OnClickListener указанный в коде XML, можно добавить еще один слушатель внутри первого. Вот почему вам нужно нажать два раза.

0

Вы сбрасываете OnClickListener с помощью первого крана. Второй кран затем использует OnClickListener с intent

Ваш код в должен быть только так:

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