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/listaVista
ListView wordt getekend na @+id/texto
en 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 TextView
bevat met setContentView()
:
setContentView(R.layout.activity_enviar_mensaje);
en vervolgens de referentie van de TextView in activity_enviar_mensaje.xml
ophalen 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