2012年3月1日木曜日

【Forest君用】TextViewを動的に表示させる方法

「Hello World!」アプリを3度に渡って説明してきましたが、
今回はより実践に近いコーディングをしていきます。

「Hello World!」アプリではTextViewを使用してstring.xmlで
設定した文字列を表示させていました。
勿論、string.xmlに設定する値を変えたら画面の表示も変わります。

それでは次のケースはどうでしょう?
  1. 画面にボタンが2個あり、押したボタンによって表示する文字を変える
  2. 画面に文字入力できるテキストボックスがあり、入力された文字を画面に表示する
  3. 画面が2つ用意されており、1つ目の画面でリストから選択された項目を2つ目の画面で表示する
実際の開発では固定値として文字列を用意することはありますが、
必ずしも万能ではありません。
上記ケースの実装方法を考えてみてください。
string.xmlだけでは難しいことがわかると思います。

上記を踏まえて、Javaソース内でTextViewの文字列を設定する方法を勉強していきます。

package jp.gr.java_conf.siroco.helloandroid;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroidActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // TextViewインスタンス生成
        TextView textView = new TextView(this);

        // 表示するテキストの設定
        textView.setText("STAND ALONE COMPLEX");

        // ActivityにViewを設定
        setContentView(textView);

//        setContentView(R.layout.main);
    }
}

これは前回までで作った「HelloAndroidActivity」を元に作っています。
変更したのは13行目以降。

まず14行目でTextViewクラスのインスタンスを生成します。
(xmlファイルで定義していたTextViewは、ソース中ではクラスとして使用できます)

次に17行目、setTextメソッドで画面に表示する文字列を設定します。

最後に20行目でTextViewをActivityに設定します。

実行すると"STAND ALONE COMPLEX"と表示されるはずです。
(最近、甲殻機動隊を見てたから。。。)


因みに今回表示している画面は、
前回の「HelloAndroidActivity」画面とは全く違うものです。
その説明は、また次回。

0 件のコメント:

コメントを投稿