23

TextViewコードからテキストを変更しようとしています。

これは私のxmlがどのように見えるかです:

XML:
<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical|center_horizontal" />

そしてコード:

TextView tv1 = (TextView)findViewById(R.id.textView1);
tv1.setText("Hello");
setContentView(tv1);

デバイスでエラーが発生し、アプリケーションが停止します。TextView(XMLに接続されていない)を表示しようとしましたが、TextView機能しました。

4

3 に答える 3

64

あなたのアプローチは正しくありません。Null Pointer Exceptionになると思います(次回はlog catを投稿)

ビューを見つける前に、最初に使用しているレイアウトを指定する必要があります。

Java:

// Specify the layout you are using.
setContentView(R.layout.yourlayout);

// Load and use views afterwards
TextView tv1 = (TextView)findViewById(R.id.textView1);
tv1.setText("Hello");

Kotlin:

// Specify the layout you are using.
setContentView(R.layout.yourlayout)

// Load and use views afterwards
val tv1: TextView = findViewById(R.id.textView1)
tv1.text = "Hello"

知りたいことを正確に勉強するには、ここをクリックしてください

于 2012-11-19T11:40:41.803 に答える
5

これを削除します。setContentView(tv1);

于 2012-11-19T11:40:04.467 に答える
2

同じ問題が発生しました。私のアプリも停止していました。実際、私は関数/メソッドの外でコードを書いていました。したがって、この問題を修正するために、これらの行

TextView tv1 = (TextView)findViewById(R.id.textView1);
tv1.setText("Hello");

関数/メソッド内にある必要があります。(ユーザー定義が可能)(私はAndroid Studioを初めて使用するため、問題の背後にある理由はわかりませんが、これを修正する方法しかわかりません。この質問が8歳であるにもかかわらず、これは新しいものに役立つかもしれません。)

于 2021-03-27T10:17:27.110 に答える