2013-02-01 6 views
0

Je rencontre des problèmes pour définir un numéro dans la vue texte, il affiche uniquement le premier chiffre et tronque le reste. Par exemple, si je mets cette chaîne "12345" elle ne montre que "1". Notez que si je code en dur ce nombre dans la méthode setText, cela fonctionne, mais lorsque je le mets à travers Integer.toString, ce n'est pas le cas. J'ai aussi fait un Toast pour le débogage et le String qu'il montre est le bon.TextView tronquer le numéro dans Android

Voici mon code pour l'activité:

int inviteCount = inviteArray.size(); 
String inviteCountString = Integer.toString(inviteCount); 
inviteCountTextView.setText(inviteCountString); 
showToast(inviteCountString); 

protected void showToast(final String text) { 
    // Creates a Toast when there is an error 
    runOnUiThread(new Runnable(){ 
     @Override 
     public void run() { 
      Toast.makeText(RootActivity.this, text, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 

Et voici le code du fichier de mise en page

<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:id="@+id/inviteImageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/friend_invitations_background" /> 

    <TextView 
     android:id="@+id/inviteNumber" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginBottom="2dp" 
     android:text="0" 
     android:textColor="#88ffffff" 
     android:textSize="12sp" /> 
</FrameLayout> 

de Merci à l'avance.

EDIT:

Voici une capture d'écran de l'erreur. Comme vous pouvez le voir, le toast montre un 10. Mais sur le texfield qui est en haut ne montre qu'un 1. Encore une fois, si j'écris android: text = "10" il montre correctement.

Error

+0

typeof 'inviteArray'? – vault

+0

c'est une liste de tableau d'invitations. Il ne renvoie que la taille de la liste dans ce cas. – Jan

+0

Et avec la méthode String.valueOf? – psykhi

Répondre

1

C'est sans doute un problème de mise en page. Vous pouvez inspecter votre hiérarchie de mise en page à l'aide de l'outil ADT dans Eclipse. Probablement la largeur de TextView est serrée par FrameLayout mesurant seulement ses dimensions immédiates d'enfant, à savoir celle du ImageView.

Pour être honnête, je suis perplexe pourquoi sa valeur initiale est de définir la dimension correctement et pourquoi les dimensions ne sont pas déterminées par tous les enfants.

Je suggère de remplacer la construction inefficace de la FrameLayout avec juste un TextView avec un arrière-plan. Peut-être pour affiner le problème, vous pouvez simplifier la mise en page autour de cette vue.

Par exemple:

<TextView 
    android:id="@+id/inviteNumber" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_marginBottom="2dp" 
    android:text="0" 
    android:textColor="#88ffffff" 
    android:textSize="12sp" 
    android:background="@drawable/friend_invitations_background" />