如何将textview链接到我的XML布局

时间:2011-07-05 20:06:42

标签: android android-layout

我正在制作一个随机事实生成器并且我已经对代码进行了排序但是我希望它在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"/>

有谁知道怎么做?

3 个答案:

答案 0 :(得分:1)

为什么要在代码中创建TextView:

TextView tv = new TextView(this);

为什么不在.xml文件中使用TextView(facts.xml)?也许我不明白你的问题。你能澄清一下你的意思吗“我希望它在我的布局中出现在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]);

您是否看到如何根据其ID获取对.xml文件中TextView的引用,然后设置此ID的值?我也认为你不需要两次打电话:

setContentView(R.layout.facts);

答案 1 :(得分:1)

看看这个:Declaring Layout。您必须使用findViewById()来获取TextView的实例。不要自己实例化它。而且,在更改内容后,您不必再次使用setContentView。

答案 2 :(得分:1)

您将TextView放入facts.xml文件中,然后使用...

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