2013-10-18 75 views
33

我目前正在學習一些學校項目的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."); 
} 

這是目前沒有工作,我不能找到一種方法,使其工作...

任何幫助將非常apretiated ... 謝謝你的時間, 何塞。

編輯:這裏是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> 

如果不工作,我的意思是出在任何時刻不改變文字...

+2

你是什麼意思與'是不是working'?如果您用*回答未顯示*請發佈XML佈局? – gunar

+1

你顯示的代碼看起來很好。你有任何錯誤/崩潰? – codeMagic

+1

是'err'聲明爲textview? 'TextView err;' – Nick

回答

6

好,@+id/listaVista的ListView是@+id/texto和後得出它的頂部。

android:layout_below="@+id/editText1" 

到:從ListView控件因此改變

android:layout_above="@+id/texto" 

此外,由於名單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> 
+0

非常感謝你給出的XML ...但不幸的是,它並沒有解決原來的問題...文本視圖仍然顯示「TextView」而不是「」Escriba su mensaje 「...任何想法??? – progjose

+0

@ user2471107嘗試從佈局文件中的」TextView「中刪除文本,然後檢查。如果仍然不起作用,那麼發佈您輸出的屏幕截圖。 – GrIsHu

74

在你的佈局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"); 
+0

如果我在全局設置'myAwesomeTextView',我得到了崩潰,因爲findViewById必須在'onCreate'中調用嗎? –

+2

@TimothyLeung:聲明變量是全局變量,並且只在onCreate()中調用findById –

1

我有一個類似的問題。事實證明,我有兩個具有相同ID的TextView對象。他們在不同的視圖文件,所以Eclipse沒有給我一個錯誤。嘗試在TextView中重命名你的ID,看看是否沒有解決你的問題。

2

爲什麼難道你不嘗試分配TextView的內容在onStart(),而不是的onCreate()

1
在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文件夾 - >值 - > strings.xml中 粘貼下面的代碼已存在的代碼:

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

上面的代碼意味着你已經創建了ID一個TextView:姓名(一droid:id =「@ + id/name」),並將該textview分配給字符串中帶有標識符名稱的字符串(android:text =「@ string/name」) 。XML製作使用的標識符名稱的文本分配,

1

這應該做的伎倆:

textView.setText("test"); 
+0

應該是.setText注意大寫字母「t」\) – 416E64726577

0

在你的佈局。你的Texto不應該包含(android:text = ...)。我會刪除這一行。無論是保持Java字符串或(機器人:文本= ...)

2

請更正以下行:

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

到:

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

試試這個:

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

確保您導入TextView。

1

正如你已經給靜態文本

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

它不會改變,它將保持不變。

實施例用於TextView的動態文本是:

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

把這個代碼在XML

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

把這個代碼在Java FILE

//聲明componants像TextView的在全球範圍內是一個很好的習慣中

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

//在OnCreate中

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

在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); 
     } 
} 
0

首先你應該創建文本視圖對象TextView show_alter

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

您應該使用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."); 
+1

爲什麼你建議一個簡單的本地解決方案足夠的圖書館? – glendon

+0

codebloat!一個庫來做到這一點! – Jorgesys

2

在佈局文件中。

<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!"); 
-1

轉到您的activityMain並通過添加小部件部分中的小部件和人工選擇和輸入更改文本設置文本。

1

在XML中使用這樣的:

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

在活動定義視圖:

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

在字符串文件:

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

輸出:你好

0

可以設置textview中的字符串編程像下面的盟友。

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

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

您可以設置字符串中的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="Escriba su mensaje y luego seleccione el canal." /> 

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

你的代碼是好的,您正在加載使用setContentView()包含TextView將.xml:

setContentView(R.layout.activity_enviar_mensaje); 

,然後讓TextView的內部activity_enviar_mensaje.xml參考,並設定文字:

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

的問題是,你的TextView由ListView隱藏:

enter image description here

相關問題