1

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

基本上我的“应用程序”(如果你可以这么称呼它的话)由一个选项卡式片段组成,紧挨着我的应用程序的“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 文件,我的天真让我相信它应该工作,但显然它没有(实际上应用程序在加载到模拟器时崩溃)。

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

谢谢

4

2 回答 2

0

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

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

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

于 2012-12-31T01:53:50.827 回答
0

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

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

你需要添加

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

setContentView(R.layout.main);

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

否则findViewById()会返回 null 并且你会得到NullPointerExceptions

其他一些需要注意的事项:

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

android:text="@+id/TextView01"

也是一个问题。

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

于 2012-12-31T01:57:15.503 回答