2017-10-17 29 views
0

J'ai le code ci-dessousAndroid: GetText de TextView ne fait rien?

final TextView bT = (TextView) v.findViewById(R.id.b_t); 
Log.e(LOG_TAG, bT.getText().toString()); 
if (bT.getText() == null) { 
    Log.e(LOG_TAG, "NULL"); 
} else if (bT.getText() == null) { 
    Log.e(LOG_TAG, "NULL"); 
} 

Je suis en train de faire une condition où, si le texte est bT pas défini encore, je l'ai mis.

Cela a le problème mineur de ne rien faire du tout - même les étiquettes de journal ne s'affichent pas.

Je sais que j'ai la bonne vue, parce que je peux appeler setText() très bien, et je sais que le code atteint effectivement ce point, parce que

Log.e (LOG_TAG, LOG_TAG)

fonctionnera très bien.

Je ne sais pas comment régler le conditionnel ici.

+3

'getText()' ne retournera pas de valeur nulle. Si le 'TextView' est vide, il retournera un' Editable' vide. En outre, ces deux «si» sont exactement les mêmes. –

Répondre

1

Vous pouvez utiliser:

EditText bT = (EditText) findViewById(R.id.b_t); 
String strGetText= bT.getText().toString(); 
if (strGetText.trim().equals("")) { 
    Toast.makeText(this, "NULL", Toast.LENGTH_SHORT).show(); 
    Log.e(LOG_TAG, "NULL"); 
    return; 
} 

ou

if(TextUtils.isEmpty(strGetText)) { 
    Toast.makeText(this, "NULL", Toast.LENGTH_SHORT).show(); 
    Log.e(LOG_TAG, "NULL"); 
    return; 
} 

J'espère que cela peut aider votre problème!

2

Utilisez TextUtils pour vérifier si le TextView est vide

if(TextUtils.isEmpty(bT.getText().toString())) { 
    Log.e(LOG_TAG, "NULL"); 
}else{ 
    // do whatever you want 
} 
1

Essayez cette solution qui différencie getText en une strGetText variable et faire en sorte qu'il ne devrait pas être un vide.

final TextView bT = (TextView) v.findViewById(R.id.b_t); 
String strGetText= bT.getText().toString() 
Log.e(LOG_TAG, bT.getText().toString()); 

if (!TextUtils.isEmpty(strGetText)) { 
    Log.e(LOG_TAG, "It's not null"); 
} else { 
    Log.e(LOG_TAG, "It's null"); 
}