Android编程:在上面的窗格中添加TextView

时间:2012-12-31 01:47:49

标签: android

直到12小时前,我从未接触过Android编程甚至是XML。因此,我的问题可能显得非常愚蠢。

基本上我的“app”(如果你可以称之为)包含一个标签片段,它位于我app的“app_name”的正下方。

我想要做的是在app_name下方和(同时)在标签片段正上方添加一些STATIC文本 - 我们正在讨论单个文本“元素”,只是要清楚。到目前为止我所尝试的一直是......不成功。基本上,我认为它会如下:

我的main.xml目前看起来像这样:

<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/TextView01"
          android:layout_below="@+id/AnalogClock01"
          android:layout_width="wrap_content"
          android:text="@+id/TextView01" android:layout_height="wrap_content">
</TextView>
</LinearLayout>

我相信TextView组件将是添加我想要的静态文本字段所需的所有XML。随后我补充说:

TextView tv1 = (TextView) findViewById(R.id.TextView01);
tv1.setText("Additional information");
在调用super.onCreate(savedInstanceState)之后立即
到我的MainActivity.java文件,我的天真让我相信它应该有效,但显然它没有(实际上应用程序在将它加载到模拟器时崩溃)。 p>

由于这不起作用,我的帖子的目的是希望让你们中的一个或多个人提供解决方案来“修复”这个问题。

由于

2 个答案:

答案 0 :(得分:0)

您应该尝试让活动在一个活动中具有多个布局。

这可能有所帮助:http://developer.android.com/guide/topics/ui/declaring-layout.html#Position

也可以试试.onStart()方法,虽然我不知道它是否会改变任何东西。

答案 1 :(得分:0)

  

随后我在调用super.onCreate(savedInstanceState)之后立即添加:... MainActivity.java文件

如果你这样做,你就会遇到问题。

您需要添加

TextView tv1 = (TextView) findViewById(R.id.TextView01);
tv1.setText("Additional information");
setContentView(R.layout.main);

之后

首先,您需要提供Activity某些内容(UI)然后您可以修改构成该UI的组件。

否则findViewById()将返回null,您最终会得到NullPointerException s

其他一些注意事项:

android:layout_below="@+id/AnalogClock01" 
  1. 您没有在该布局中定义AnalogClock01。如果它在其他地方被定义,那么可能不会使您的应用程序崩溃,但事情可能无法按预期运行。
  2. 即使您在该布局中确实有AnalogClock01,也不会使用@+id/访问它,因为您没有分配ID,而是访问它。请改用@id/
  3. 并且

    android:text="@+id/TextView01"
    

    也是一个问题。

    要引用res/values/strings.xml文件中的字符串,请使用@string/string_name+,绝对不是id