2011-07-05 15 views
0

IM做一個隨機的事實發生器和香港專業教育學院得到了代碼排序,但我希望它出現與我在XML文件格式,代碼中,我有如下如何TextView的鏈接到我的XML佈局

public class facts extends Activity { 

//implements android.view.View.OnClickListener { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.facts); 
    setTitle("Buy - Find a carpool!"); 



    Random generator= new Random(); 
    int num; 
    String[] quotes; 
    quotes= new String[15]; 
    quotes[0]= "test1)"; 
    quotes[1]= "test2"; 
    TextView tv = new TextView(this); 
    num=generator.nextInt(15); 
    tv.setText(quotes[num]); 
    setContentView(R.layout.facts); 

我的XML代碼是

 <TextView 
android:gravity="center_vertical|center_horizontal" 
android:id="@+id/factslist" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android.layout_column="15" 
     android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true"/> 

有誰知道如何做到這一點?

回答

1

爲什麼你在代碼中創建一個TextView:

TextView tv = new TextView(this); 

爲什麼沒有在您的.xml文件(facts.xml)一個TextView?也許我不明白你的問題。你能澄清你的意思嗎?「我希望它與我的佈局一起出現在xml文件中」。

如果你的意思是你想在.XML定義TextView的,那麼<TextView>元素添加到文件facts.xml:

<xml version="1.0" encoding="utf-8"> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" > 
    <TextView android:id="@+id/text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Hello, I am a TextView" /> 
</LinearLayout> 

所以不是這個代碼:

Random generator= new Random(); 
int num; 
String[] quotes; 
quotes= new String[15]; 
quotes[0]= "test1)"; 
quotes[1]= "test2"; 
TextView tv = new TextView(this); 
num=generator.nextInt(15); 
tv.setText(quotes[num]); 
setContentView(R.layout.facts); 

你應該有:

Random generator= new Random(); 
int num; 
String[] quotes; 
quotes= new String[15]; 
quotes[0]= "test1)"; 
quotes[1]= "test2"; 

TextView tv = (TextView) findViewById(R.id.factslist); 

num=generator.nextInt(15); 
tv.setText(quotes[num]); 

你看到你是如何獲得對你的.x的TextView的引用ml文件基於它的id,然後設置這個id的值?我也不認爲你需要調用這兩次:

setContentView(R.layout.facts); 
+0

使用教程藏漢對不起IM要做到這一點我應該提到,我怎麼去了那麼它引用它改變我在.xml佈局中的textview ID? – Wassif

+0

我設置了文本視圖,但是如果我將android:文本留空,則不會顯示任何內容,如果我輸入內容,則會覆蓋顯示隨機報價的腳本 – Wassif

+0

您可以發佈新代碼嗎? – Jack

1

看看這個:Declaring Layout。你必須使用findViewById()來獲得TextView的一個實例。不要自己實例化它。而且,您在更改內容後不必再次設置ContentView。

+0

好吧,我擺脫了最後一個setcontentview部分,對不起,我新到這個,我在哪裏添加findViewById(R.id.my_button);?是否必須將textview更改爲我的.xml中的其他內容 – Wassif

+0

請看傑克的例子。 – robamaton

+0

我得到了所有的設置,但似乎我必須輸入android:text =「」部分的內容,因爲如果我不這樣做,什麼都不會顯示出來。如果我輸入一些文本,它會覆蓋java代碼,並且不會顯示隨機報價 – Wassif

1

你把TextView的你facts.xml文件,然後使用...

TextView tv = (TextView) findViewById(R.id.myTextView); 
+0

謝謝!我改變了這一點,現在我明白了這一點!但它沒有顯示文字 – Wassif

相關問題