Android – Tekst instellen op TextView

Ik ben momenteel Android aan het leren voor een schoolproject en ik weet niet hoe ik tekst dynamisch kan instellenin een TextView.

Hier is mijn 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.");
}

Dit werkt momenteel niet en ik kan geen manier vinden om het te laten werken…

Alle hulp wordt zeer op prijs gesteld…
Bedankt voor de tijd,
José.

EDIT: hier is de 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>

Met niet werken bedoel ik dat de getoonde tekst op geen enkel moment verandert…


Antwoord 1, autoriteit 100%

In uw lay-out-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" />

Vervolgens, in je activiteitenklas:

// globally 
TextView myAwesomeTextView = (TextView)findViewById(R.id.myAwesomeTextView);
//in your OnCreate() method
myAwesomeTextView.setText("My Awesome Text");

Antwoord 2, autoriteit 15%

PLAATS DEZE CODE IN UW XML-BESTAND

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

PLAATS DEZE CODE IN UW JAVA-BESTAND

// Het is een goede gewoonte om componenten zoals TextView wereldwijd te declareren

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

// Zet dit in OnCreate

mTextView.setText("Welcome to Dynamic TextView");

Antwoord 3, autoriteit 7%

Nou, @+id/listaVistaListView wordt getekend na @+id/textoen erbovenop. Dus verander in ListView van:

android:layout_below="@+id/editText1"

naar:

android:layout_above="@+id/texto"

Omdat de lijst na textview is opgesteld, vind ik het bovendien gevaarlijk om android:layout_alignRight="@+id/listaVista"in TextView te hebben. Dus verwijder het en zoek een andere manier van uitlijnen.

BEWERKEN
Als ik nog een keer naar je lay-out kijk, denk ik dat dit is wat je echt wilt hebben:

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

Antwoord 4, autoriteit 5%

In lay-outbestand.

<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 activiteit

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

Antwoord 5, autoriteit 5%

Gebruik in xml dit:

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

Definieer de weergave in Activiteit:

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

In tekenreeksbestand:

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

Uitvoer: Hallo


Antwoord 6, autoriteit 3%

Ik had een soortgelijk probleem. Het bleek dat ik twee TextView-objecten had met dezelfde ID. Ze bevonden zich in verschillende weergavebestanden en dus gaf Eclipse me geen foutmelding. Probeer uw id in de TextView te hernoemen en kijk of dat uw probleem niet oplost.


Antwoord 7, autoriteit 3%

Waarom probeert u de inhoud van de tekstweergave niet toe te wijzen aan Start() in plaats van onCreate()


Antwoord 8, autoriteit 3%

in uw activity_main.xml plak deze 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" />

en ga naar res-map- & gt; waarden- & gt; strings.xml
Plak de onderstaande code met de code die al bestaat:

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

De bovenstaande code betekent dat u een tekstview met ID hebt gemaakt: NAME (Android: ID = “@ + ID / naam”) en toegewezen dat TextView op een tekenreeks met een ID-naam (Android: Text = “@ string / naam”)
in strings.xml Uw gebruik van die ID-naam om de tekst toe te wijzen,


Antwoord 9, Autoriteit 3%

Probeer dit:

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

Zorg ervoor dat u tekstview importeert.


Antwoord 10, Autoriteit 2%

Corrigeer de volgende regel:

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

naar:

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

Antwoord 11, Autoriteit 2%

in XML-bestand,

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

In Java-activiteitenbestand,

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

Antwoord 12, autoriteit 2%

eerst moet je een object maken voor tekstweergave TextView show_alter

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

Antwoord 13, autoriteit 2%

Je kunt de tekenreeks in tekstweergave programmatisch instellen zoals hieronder.

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

of

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

Je kunt een string in xml instellen zoals hieronder.

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

of

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

Antwoord 14, Autoriteit 2%

Dit zou de truc moeten doen:

TextView.setText("test");

Antwoord 15, Autoriteit 2%

Zoals u statische tekst hebt gegeven

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

Het zal niet veranderen, het blijft hetzelfde.

Voorbeeld voor dynamische tekst voor tekstview is:

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>

Antwoord 16, Autoriteit 2%

U moet Butterknife-bibliotheek gebruiken
http://jakewarton.github.io/butterknife/

en gebruik het als

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

In oncreate methode

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

Antwoord 17

Uw code is OK, u laadt de .xml die de TextViewbevat met setContentView():

  setContentView(R.layout.activity_enviar_mensaje);

en vervolgens de referentie van de TextView in activity_enviar_mensaje.xmlophalen en een tekst instellen:

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

Het probleem is dat uw TextView wordt verborgen door de ListView:


Antwoord 18

Ik weet dat het 2 maanden is, maar ja

vervang je code

Private TextView err;
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.");
}

Antwoord 19

In uw lay-out. Uw Texto mag geen (android:text=…) bevatten. Ik zou deze regel verwijderen. Houd ofwel de Java-string OF de (android:text=…)


Antwoord 20

Ga naar uw activityMain en stel de tekst in door een widget toe te voegen uit het widgets-gedeelte en handmatig tekst te wijzigen door te selecteren en te typen.


Antwoord 21

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

alles wat je nodig hebt over textview hier


Antwoord 22

Kotlin-oplossing

Gebruik gewoon dit om een tekenreeks in te stellen

view.text = "My string"

Als u hetzelfde wilt doen met een resourcewaarde, voegt u deze extensie-eigenschap toe om uw tekst veel gemakkelijker in te stellen

view.textRes = R.string.my_string
var TextView.textRes
    get() = 0 // HACK: property requires getter
    set(@StringRes textRes) {
        text = resources.getText(textRes)
    }

Antwoord 23

Misschien heb je de tekst in de functie onResume() toegewezen

Other episodes