webentwicklung-frage-antwort-db.com.de

Android - Text auf TextView einstellen

Ich lerne gerade etwas Android für ein Schulprojekt und ich kann nicht herausfinden, wie man Text dynamisch in eine Textansicht umwandeln kann. 

Hier ist mein 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.");
}

Das funktioniert momentan nicht und ich kann keinen Weg finden, damit es funktioniert ...

Jede Hilfe wird sehr verständlich sein ... Danke für die Zeit, José.

BEARBEITEN: Hier ist die 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>

Wenn ich nicht arbeite, meine ich, dass sich der angezeigte Text zu keinem Zeitpunkt ändert ...

45
progjose

In Ihrem Layout 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" />

Dann in Ihrer Aktivitätsklasse:

// globally 
TextView myAwesomeTextView = (TextView)findViewById(R.id.myAwesomeTextView);

//in your OnCreate() method
myAwesomeTextView.setText("My Awesome Text");

Füge diesen Code in deine XML ein

<TextView
    Android:id="@+id/textview1"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"/>

Füge diesen Code in deine Java-Datei ein

// Das Deklarieren von Komponenten wie TextView Global ist ein guter Habbit

TextView mTextView = (TextView) findViewById(R.id.textview1);

// Setze dies in OnCreate

mTextView.setText("Welcome to Dynamic TextView");
15
Ankush Joshi

Nun, @+id/listaVista ListView wird nach @+id/texto und darüber gezeichnet. Also in ListView wechseln von:

Android:layout_below="@+id/editText1"

zu:

Android:layout_above="@+id/texto"

Da die Liste nach textview gezeichnet wird, finde ich es auch gefährlich, Android:layout_alignRight="@+id/listaVista" in TextView zu haben. Also entfernen Sie es und finden Sie einen anderen Weg zur Ausrichtung. 

EDIT Ein zweiter Blick auf dein Layout Ich denke, das ist es, was du wirklich haben willst:

<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>
9
gunar

Warum versuchen Sie nicht, den Textview-Inhalt aufStart () statt aufCreate () zuzuweisen?

5
loonighan

In XML verwenden Sie dies:

<TextView 
       Android:id="@+id/textView"
       Android:layout_width="wrap_content"
       Android:layout_height="wrap_content"/>

In Aktivität definieren Sie die Ansicht:

Textview textView=(TextView)findViewById(R.id.textView);
textView.setText(getResources().getString(R.string.txt_hello));

In String-Datei:

<string name="txt_hello">Hello</string>

Ausgabe: Hallo

5
Shivam Kumar

Ich hatte ein ähnliches Problem. Es stellte sich heraus, dass ich zwei TextView-Objekte mit derselben ID hatte. Sie befanden sich in unterschiedlichen Ansichtsdateien und daher gab mir Eclipse keinen Fehler. Versuchen Sie, Ihre ID in der Textansicht umzubenennen und zu überprüfen, ob das Problem dadurch nicht behoben wird.

4
holy moly

Versuche dies:

TextView err = (TextView)findViewById(R.id.text);

Stellen Sie sicher, dass Sie TextView importieren.

4
samuel

In der Layoutdatei.

<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"/>

In Aktivität

TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setText("Hello World!");
4

fügen Sie diesen Code in Ihre activity_main.xml ein:

            <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" />

und gehen Sie zu res folder-> values-> strings.xml Fügen Sie den folgenden Code mit dem bereits vorhandenen Code ein:

          <string name="name">Escriba su mensaje y luego seleccione el canal.</string>

der obige Code bedeutet, dass Sie eine Textansicht mit id: name (Android: id = "@ + id/name") erstellt haben und diese Textansicht einer Zeichenfolge mit einem Bezeichnernamen (Android: text = "@ string/name") in strings.xml, wenn Sie diesen Bezeichnernamen verwenden, um den Text zuzuweisen,

4
saika

Das sollte den Trick tun:

TextView.setText("test");
3
DenVik

Bitte korrigieren Sie die folgende Zeile:

err = (TextView)findViewById(R.id.texto);

zu:

err = (TextView)findViewById(R.id.err);
3
Raiyus13

In XML-Datei

<TextView
       Android:id="@+id/textview"
       Android:layout_width="wrap_content"
       Android:layout_height="wrap_content"
       Android:text="My Name"
       Android:textColor="#cccccc"/>

In der Java-Aktivitätsdatei

public class MainActivity1 extends Activity
 {
   TextView t1;
   public void onCreate(Bundle onSavedInstance)
      {
         setContentView(R.layout.xmlfilename);
          t1 = (TextView)findViewbyId(R.id.textview);
      }
 }
2
Gavine Joyce

Da hast du statischen Text angegeben

err.setText("Escriba su mensaje y luego seleccione el canal.");

Es wird sich nicht ändern, es wird gleich bleiben.

Beispiel für dynamischen Text für die Textansicht ist:

MainActivity.Java
package com.example.dynamictextview;

import Android.app.Activity;
import Android.os.Bundle;
import Android.view.View;
import Android.view.View.OnClickListener;
import Android.widget.Button;
import Android.widget.TextView;

public class MainActivity extends Activity {

    int count = 0;
    Button clickMeBtn;
    TextView dynamicText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        clickMeBtn = (Button) findViewById(R.id.button_click);
        dynamicText = (TextView) findViewById(R.id.textview);

        clickMeBtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                count++;
                dynamicText.setText("dynamic text example : " + count);

            }
        });

    }

}

For activity_main.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="match_parent"
    tools:context="com.example.dynamictextview.MainActivity" >

    <Button 
        Android:id="@+id/button_click"
       Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="click me"
        Android:layout_centerInParent="true" />

    <TextView
        Android:id="@+id/textview"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="@string/hello_world" 
        Android:layout_below="@id/button_click"
        Android:layout_centerHorizontal="true"
        Android:textSize="25sp"
        Android:layout_marginTop="20dp"
        />

</RelativeLayout>
2
Heena Arora

Sie können die Zeichenfolge in Textansicht programmgesteuert wie folgt festlegen.

TextView textView = (TextView)findViewById(R.id.texto);
err.setText("Escriba su mensaje y luego seleccione el canal.");

oder 

TextView textView = (TextView)findViewById(R.id.texto);
err.setText(getActivity().getResource().getString(R.string.seleccione_canal));

Sie können die Zeichenfolge wie folgt in xml setzen.

<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." />

oder

<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" />
2
duggu

zuerst sollten Sie ein Objekt für die Textansicht erstellen. TextView show_alter 

show_alert = (TextView)findViewById(R.id.show_alert);
show_alert.setText("My Awesome Text");
1
Jerin Stephen

Ihr Code ist in Ordnung, Sie laden die .xml-Datei, die die TextView enthält, mit setContentView()

   setContentView(R.layout.activity_enviar_mensaje);

und dann die Referenz der TextView in activity_enviar_mensaje.xml abrufen und einen Text festlegen: 

err = (TextView)findViewById(R.id.texto);
err.setText("Escriba su mensaje y luego seleccione el canal.");

Das Problem ist, dass Ihre TextView von der ListView ausgeblendet wird:

 enter image description here

1
Elenasys

Sie sollten ButterKnife Library verwenden http://jakewharton.github.io/butterknife/

Und benutze es gerne

@InjectView(R.id.texto)
TextView err;

in der onCreate-Methode

ButterKnife.inject(this)
err.setText("Escriba su mensaje y luego seleccione el canal.");
1
Nilesh Panchal

Gehen Sie zu "activityMain", und legen Sie den Text fest, indem Sie ein Widget aus dem Widgets-Abschnitt hinzufügen und den Text durch Auswahl und Eingabe manuell ändern.

In your layout 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" />

Then, in your activity class:

// globally 
TextView myAwesomeTextView = (TextView)findViewById(R.id.myAwesomeTextView);

//in your OnCreate() method
myAwesomeTextView.setText("My Awesome Text");
0
Gaurang Kanani

In deinem Layout. Ihr Texto sollte nicht enthalten (Android: Text = ...). Ich würde diese Zeile entfernen. Behalten Sie entweder den Java-String OR bei (Android: text = ...)

0
Salman Mohammed
final TextView err = (TextView)findViewById(R.id.texto);
err.setText("Escriba su mensaje y luego seleccione el canal.");

alles über textview hier

0