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和键入来手动更改文本来设置文本。