2

初めての Android アプリケーションを作成していますが、問題が発生しています。次のコードを検討してください。

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState{
    super.onCreate(savedInstanceState);
    TextView textView;
    textView = new TextView(this);
    textView.setTextSize(40);
    //textView.setText("TEST");
    setContentView(textView);
}

setTextこのコードは、行がコメントされている限りコンパイルされます。コメントを外すと、次のエラーが発生します。cannot find symbol: variable textView

ここで明らかに間違ったことをしていますか?私はAndroidを初めて使用し、Javaを書いてから何年も経ちます(私はもっと多くのCを書いており、私の本能は私を迷わせがちです...)

編集:

この関数は、次のサンプル コードを簡略化したものです: http://developer.android.com/training/basics/firstapp/starting-activity.html

この例は間違っていますか?マニフェストでこのような単純なビューを作成する必要はないように見えますが、これは Java リンカ エラーのように見えますか? ご回答ありがとうございますが、何が問題なのかまだ理解できません。

4

3 に答える 3

2

あなたが間違っているいくつかの場所:

setContentView()-ビューを参照する前に呼び出す必要があります

-setContentView()レイアウトを含む XML ファイルの名前を取ります

-JAva コードのレイアウトで TextView への参照を作成する必要があります。findViewById

@Override
protected void onCreate(Bundle savedInstanceState{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.name_of_your_xml_file_which_has_the_layout);
    TextView textView;
    textView = (TextView)findViewById(R.id.id_of_the_textView_as_given_in_your_layout.xml);
    textView.setTextSize(40);
    textView.setText("TEST");
}

EDIT :ここで 指定されたコードは TextView を動的に作成し、私の回答に含まれるメソッドは静的レイアウトを使用し、Java コードで textView を参照するだけです。複雑になると動的レイアウトの実装が非常に難しくなるため、これが標準的な方法です。ここでは、TextView が 1 つしかないので簡単に見えます。しかし、UI 要素が増えると、(私の意見では)トラブルが増えるだけです。Android を初めて使用する場合は特に、静的レイアウトの方法に従うことをお勧めします。

于 2013-03-31T12:30:05.443 に答える
1

次のように、レイアウト ファイルにテキスト ビューを作成できます。

<TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

そして、コード内で見つけて、変数に割り当てます。

TextView textView = (TextView)findViewById(R.id.textView1);
// Now you can do whatever you want with this textview
于 2013-03-31T12:33:23.687 に答える