TextView par programmation Android

J'ai quelques problèmes de la création d'un textView par programmation. Je ne sais vraiment pas comment le résoudre.

TextView par programmation Android

Les problèmes sont :

-La marge, je ne veux pas que mon TextView collé les uns aux autres.

-Le texte n'est pas centré dans le drawable comme dans le titre

-Je veux que les messages de Pseudo de l'utilisateur aligné à droite et les messages de Nick aligné à gauche.

Pour cela, j'ai ces deux fonctions :

private void appendSenderText(String message) {
TextView msg = new TextView(ChatActivity.this);
msg.setBackgroundResource(R.drawable.rectangle);
msg.setText(message);
msg.setPadding(10, 10, 10, 10);
msg.setTextColor(getResources().getColor(R.color.white));
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT, Gravity.LEFT);
params.setMargins(10, 10, 10, 10);
msg.setLayoutParams(params);
LinearLayout chat = (LinearLayout) findViewById(R.id.chatLayout);
chat.addView(msg);  
}
private void appendReceiverText(String message) {
TextView msg = new TextView(ChatActivity.this);
msg.setBackgroundResource(R.drawable.rectangle);
msg.setText(message);
msg.setPadding(10, 10, 10, 10);
msg.setTextColor(getResources().getColor(R.color.white));
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT, Gravity.RIGHT);
params.setMargins(10, 10, 10, 10);
msg.setLayoutParams(params);
LinearLayout chat = (LinearLayout) findViewById(R.id.chatLayout);
chat.addView(msg);  
}

Il semble qu'il ne fonctionne pas. J'ai également vérifié que les fonctions sont correctement appelé.
J'ai remarqué que dans mon fichier XML pour le titre, j'ai précisé que layout_gravity et pas de gravité.

EDIT : j'ai utilisé ListView comme vous l'avez suggéré, tout fonctionne bien mais j'ai toujours ce problème avec le texte non centrée, bien que j'ai utilisé msg.setGravity(gravity.CENTER);
Peut-être que mon drawable a un problème.

Voici le fichier xml pour mon arrondie rectanngle. C'est bizarre, quand j'ai créer mon Textview dans le fichier XML, le texte est centré, et lorsque je veux créer par programmation, il n'est pas le cas.

TextView par programmation Android

Voici le code de mon drawable.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle">
<gradient
android:startColor="@color/drk_button"
android:endColor="@color/lgt_button"
android:angle="90">
</gradient>
<corners android:radius="7dip" />
<stroke
android:width="1px"
android:color="@color/drk_button" />
</shape>

Et voici le code où j'ai créer le texView.

Message message = (Message) this.getItem(position);
ViewHolder holder; 
if(convertView == null)
{
holder = new ViewHolder();
convertView = LayoutInflater.from(mContext).inflate(R.layout.sms_row, parent, false);
holder.message = (TextView) convertView.findViewById(R.id.message_text);
convertView.setTag(holder);
}
else
holder = (ViewHolder) convertView.getTag();
holder.message.setText(message.getMessage());
holder.message.setTextSize(17);
holder.message.setGravity(Gravity.CENTER);
LayoutParams lp = (LayoutParams) holder.message.getLayoutParams();
if(message.isMine())
{
holder.message.setBackgroundResource(R.drawable.rectangle);
lp.gravity = Gravity.LEFT;
}
else
{
holder.message.setBackgroundResource(R.drawable.rectangledest);
lp.gravity = Gravity.RIGHT;
}
holder.message.setLayoutParams(lp);
holder.message.setTextColor(Color.WHITE);   
return convertView;
}
vous devriez certainement utiliser une ListView pour le chat aime les choses
Si vous développez une application de chat, de mieux utiliser les ListView et de passer par quelques exemples d'application de chat codes.
github.com/AlexBarinov/UIBubbleTableView

OriginalL'auteur nytochin | 2014-06-02