Android - 将文本设置为TextView

pro*_*ose 51 android textview

我正在学习一些学校项目的android,我无法弄清楚如何动态地将文本设置为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.");
}
Run Code Online (Sandbox Code Playgroud)

这目前无效,我找不到让它工作的方法......

任何帮助都会得到充分的肯定......谢谢你的时间,José.

编辑:这是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>
Run Code Online (Sandbox Code Playgroud)

不工作我的意思是显示的文字随时都不会改变......

Hus*_*ri' 98

在您的布局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" />
Run Code Online (Sandbox Code Playgroud)

然后,在您的活动类中:

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

//in your OnCreate() method
myAwesomeTextView.setText("My Awesome Text");
Run Code Online (Sandbox Code Playgroud)

  • 如果我全局设置 `myAwesomeTextView` 会崩溃,因为必须在 `onCreate` 中调用 findViewById? (2认同)
  • @TimothyLeung:声明变量为全局变量,并且仅在onCreate()中调用findById (2认同)

小智 15

在您的XML中输入此代码

<TextView
    android:id="@+id/textview1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)

将此代码放入您的JAVA文件中

//像TextView Globally一样声明组件是一个很好的Habbit

TextView mTextView = (TextView) findViewById(R.id.textview1);
Run Code Online (Sandbox Code Playgroud)

//把它放在OnCreate中

mTextView.setText("Welcome to Dynamic TextView");
Run Code Online (Sandbox Code Playgroud)


gun*_*nar 9

好吧,@+id/listaVistaListView是在@+id/texto它之后和之上绘制的.所以改变ListView来自:

android:layout_below="@+id/editText1"
Run Code Online (Sandbox Code Playgroud)

至:

android:layout_above="@+id/texto"
Run Code Online (Sandbox Code Playgroud)

此外,由于列表是在textview之后绘制的,我发现android:layout_alignRight="@+id/listaVista"在TextView中有危险.所以删除它并找到另一种对齐方式.

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

<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>
Run Code Online (Sandbox Code Playgroud)


Vis*_*ani 6

在布局文件中。

<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"/>
Run Code Online (Sandbox Code Playgroud)

活动中

TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setText("Hello World!");
Run Code Online (Sandbox Code Playgroud)


Shi*_*mar 6

在xml中使用此:

<TextView 
       android:id="@+id/textView"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)

在Activity中定义视图:

Textview textView=(TextView)findViewById(R.id.textView);
textView.setText(getResources().getString(R.string.txt_hello));
Run Code Online (Sandbox Code Playgroud)

在字符串文件中:

<string name="txt_hello">Hello</string>
Run Code Online (Sandbox Code Playgroud)

输出:你好


loo*_*han 5

为什么不尝试在onStart()而不是onCreate()上分配textview内容