Android – 将文本设置为TextView

我目前正在学习一个学校项目的一些机器人,我不知道如何将文本dynamicaly设置为一个TextView。

这是我的代码:

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

这是目前不工作,我无法find一种方法,使其工作…

任何帮助都会令人钦佩…谢谢你,何塞。

编辑:这是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" 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: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:layout_alignRight="@+id/listaVista" 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> 

通过不工作,我的意思是显示的文本不会随时改变…

在你的布局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" /> 

那么,在你的活动课上:

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

把这个代码放在你的XML中

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

把这个代码放在你的JAVA文件中

//像TextView一样声明组件是全球化的好习惯

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

//把它放在OnCreate中

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

那么, @+id/listaVista ListView是在@+id/listaVista之后绘制的。 所以在ListView中改变:

 android:layout_below="@+id/editText1" 

至:

 android:layout_above="@+id/texto" 

另外,由于列表是在textview之后绘制的,我发现在TextView中使用android:layout_alignRight="@+id/listaVista"是危险的。 所以删除它并find另一种alignment方式。

编辑再看看你的布局,我认为这是你真正想要的:

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

尝试这个:

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

确保你导入TextView。

为什么不尝试分配文本视图内容onStart()而不是onCreate()

请更正以下行:

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

至:

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

在布局文件中。

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

在活动

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

我有一个类似的问题。 原来我有两个具有相同ID的TextView对象。 他们在不同的视图文件,所以Eclipse没有给我一个错误。 尝试在TextView中重命名您的ID,看看是否不能解决您的问题。

在你的activity_main.xml中粘贴这段代码:

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

并转到res folder-> values-> strings.xml将下面的代码粘贴到已存在的代码中:

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

上面的代码意味着你已经创build了一个带有id:name(android:id =“@ + id / name”)的textview,并将该textview赋给了一个带有标识符名称的string(android:text =“@ string / name”)在strings.xml中使用该标识符名称来分配文本,

这应该做的伎俩:

 textView.setText("test"); 

正如你已经给出了静态文本

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

它不会改变,它将保持不变。

textview的dynamic文本示例是:

 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> 

在XML文件中,

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

在Java活动文件中,

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

在xml中使用这个:

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

在Activity中定义视图:

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

在string文件中:

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

输出:你好

在你的布局。 你的Texto不应该包含(android:text = …)。 我会删除这一行。 要么保持JavastringOR(android:text = …)

首先你应该为文本视图TextView show_alter创build一个对象TextView show_alter

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

你应该使用ButterKnife图书馆http://jakewharton.github.io/butterknife/

并使用它

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

在onCreate方法中

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

转到activityMain并通过添加小部件部分中的小部件并通过select和键入来手动更改文本来设置文本。