1

12 時間前まで、私は Android プログラミングや XML に触れたことがありませんでした。そのため、私の質問は信じられないほどばかげているように見えるかもしれません。

基本的に、私の「アプリ」(それを呼び出すことができる場合)は、アプリの「app_name」のすぐ下に配置されたタブ付きのフラグメントで構成されています。

私がやりたいことは、app_name のすぐ下と (同時に) タブ付きフラグメントのすぐ上にいくつかの静的テキストを追加することです。私がこれまでに試したことは....失敗しました。基本的には、次のようになると思いました。

現在、私の 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

アクティビティが 1 つのアクティビティに複数のレイアウトを持つようにする必要があります。

これは役立つかもしれません: http://developer.android.com/guide/topics/ui/declaring-layout.html#Position

また、代わりに .onStart() メソッドを試してみてください。ただし、何かが変わるかどうかは正確にはわかりません。

于 2012-12-31T01:53:50.827 に答える
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 が返され、最終的に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 に答える