J'apprends actuellement un logiciel Android pour un projet scolaire et je n'arrive pas à trouver le moyen de définir le texte de manière dynamique sur un TextView.
Voici mon code:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enviar_mensaje);
err = (TextView)findViewById(R.id.texto);
err.setText("Escriba su mensaje y luego seleccione el canal.");
}
Cela ne fonctionne pas actuellement et je ne peux pas trouver un moyen de le faire fonctionner ...
Toute aide sera beaucoup sollicitée ... Merci pour le temps, José.
EDIT: Voici le activity_enviar_mensaje.xml
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
...
tools:context=".EnviarMensaje" >
...
<TextView
Android:id="@+id/texto"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignLeft="@+id/listaVista"
Android:layout_alignParentBottom="true"
Android:layout_alignRight="@+id/listaVista"
Android:text="TextView" />
...
</RelativeLayout>
Je ne veux pas dire que le texte affiché ne change pas à tout moment ...
Dans votre mise en page XML:
<TextView
Android:id="@+id/myAwesomeTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:text="Escriba el mensaje y luego clickee el canal a ser enviado"
Android:textSize="20sp" />
Ensuite, dans votre classe d'activité:
// globally
TextView myAwesomeTextView = (TextView)findViewById(R.id.myAwesomeTextView);
//in your OnCreate() method
myAwesomeTextView.setText("My Awesome Text");
METTEZ CE CODE DANS VOTRE XML
<TextView
Android:id="@+id/textview1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"/>
METTEZ CE CODE DANS VOTRE FICHIER Java
// Déclarer des composants comme TextView Globally est une bonne habitude
TextView mTextView = (TextView) findViewById(R.id.textview1);
// Mettre ceci dans OnCreate
mTextView.setText("Welcome to Dynamic TextView");
@+id/listaVista
ListView est dessiné après le @+id/texto
et par dessus. Alors changez ListView à partir de:
Android:layout_below="@+id/editText1"
à:
Android:layout_above="@+id/texto"
De plus, comme la liste est dessinée après textview, je trouve dangereux d’avoir Android:layout_alignRight="@+id/listaVista"
dans TextView. Alors, retirez-le et trouvez un autre moyen de vous aligner.
EDIT En jetant un second coup d’œil à votre mise en page, je pense que c’est ce que vous voulez vraiment:
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".EnviarMensaje" >
<TextView
Android:id="@+id/textView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:text="Escriba el mensaje y luego clickee el canal a ser enviado"
Android:textSize="20sp" />
<EditText
Android:id="@+id/editText1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignLeft="@+id/textView1"
Android:layout_alignRight="@+id/textView1"
Android:layout_below="@+id/textView1"
Android:ems="10"
Android:inputType="text" />
<TextView
Android:id="@+id/texto"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignLeft="@+id/listaVista"
Android:layout_alignParentBottom="true"
Android:text="TextView" />
<ListView
Android:id="@+id/listaVista"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_above="@+id/texto"
Android:layout_alignParentLeft="true"
Android:layout_below="@+id/editText1" >
</ListView>
</RelativeLayout>
Pourquoi n'essayez-vous pas d'affecter le contenu de textview à onStart () plutôt qu'à onCreate ()
En XML, utilisez ceci:
<TextView
Android:id="@+id/textView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
Dans Activité, définissez la vue:
Textview textView=(TextView)findViewById(R.id.textView);
textView.setText(getResources().getString(R.string.txt_hello));
Dans le fichier de chaîne:
<string name="txt_hello">Hello</string>
Sortie: Bonjour
J'avais un problème similaire. Il s'avère que j'avais deux objets TextView avec le même ID. Ils étaient dans des fichiers de vue différents et Eclipse ne m'a donc pas donné d'erreur. Essayez de renommer votre identifiant dans TextView et voyez si cela ne résout pas votre problème.
Essaye ça:
TextView err = (TextView)findViewById(R.id.text);
Assurez-vous d'importer TextView.
Dans le fichier de mise en page.
<TextView
Android:id="@+id/myTextView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="Some Text"
Android:textSize="18sp"
Android:textColor="#000000"/>
En activité
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setText("Hello World!");
dans votre activity_main.xml collez ce code:
<TextView
Android:id="@+id/name"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:layout_marginLeft="19dp"
Android:layout_marginTop="43dp"
Android:text="@string/name" />
et allez dans res folder-> values-> strings.xml collez le code ci-dessous avec le code qui existe déjà:
<string name="name">Escriba su mensaje y luego seleccione el canal.</string>
le code ci-dessus signifie que vous avez créé un textview avec id: name (Android: id = "@ + id/name") et que vous avez affecté ce textview à une chaîne avec un identifiant (Android: text = "@ string/name") dans strings.xml votre utilisant cet identifiant pour assigner le texte,
Cela devrait faire l'affaire:
TextView.setText("test");
Veuillez corriger la ligne suivante:
err = (TextView)findViewById(R.id.texto);
à:
err = (TextView)findViewById(R.id.err);
En fichier XML,
<TextView
Android:id="@+id/textview"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="My Name"
Android:textColor="#cccccc"/>
Dans le fichier d'activité Java,
public class MainActivity1 extends Activity
{
TextView t1;
public void onCreate(Bundle onSavedInstance)
{
setContentView(R.layout.xmlfilename);
t1 = (TextView)findViewbyId(R.id.textview);
}
}
Vous pouvez définir une chaîne dans textview par programme comme ci-dessous.
TextView textView = (TextView)findViewById(R.id.texto);
err.setText("Escriba su mensaje y luego seleccione el canal.");
ou
TextView textView = (TextView)findViewById(R.id.texto);
err.setText(getActivity().getResource().getString(R.string.seleccione_canal));
Vous pouvez définir une chaîne en XML comme ci-dessous.
<TextView
Android:id="@+id/name"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:layout_marginLeft="19dp"
Android:layout_marginTop="43dp"
Android:text="Escriba su mensaje y luego seleccione el canal." />
ou
<TextView
Android:id="@+id/name"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:layout_marginLeft="19dp"
Android:layout_marginTop="43dp"
Android:text="@string/seleccione_canal" />
d'abord, vous devriez créer un objet pour la vue texte
TextView show_alter
show_alert = (TextView)findViewById(R.id.show_alert);
show_alert.setText("My Awesome Text");
Votre code est ok, vous chargez le fichier .xml contenant la TextView
à l'aide de setContentView()
:
setContentView(R.layout.activity_enviar_mensaje);
puis obtenir la référence de TextView dans activity_enviar_mensaje.xml
et définir un texte:
err = (TextView)findViewById(R.id.texto);
err.setText("Escriba su mensaje y luego seleccione el canal.");
Le problème est que votre TextView est masqué par la ListView
:
Vous devriez utiliser ButterKnife Library http://jakewharton.github.io/butterknife/
Et l'utiliser comme
@InjectView(R.id.texto)
TextView err;
dans la méthode onCreate
ButterKnife.inject(this)
err.setText("Escriba su mensaje y luego seleccione el canal.");
Accédez à votre activité principale et définissez le texte en ajoutant un widget à partir de la section des widgets et en modifiant manuellement le texte en sélectionnant et en tapant.
Dans votre mise en page. Votre Texto ne devrait pas contenir (Android: text = ...). Je supprimerais cette ligne. Soit conserver la chaîne Java OR le (Android: text = ...)
final TextView err = (TextView)findViewById(R.id.texto);
err.setText("Escriba su mensaje y luego seleccione el canal.");
vous pouvez trouver tout ce dont vous avez besoin dans textview ici