arrow_back

数値を表示する

setTextに”数値”を設定

setTextの中身を"42"にして実行して。42は数字だよね?」

    TextView textView = (TextView) findViewById(R.id.textview);
    textView.setText("42");
}
「うん。ちゃんと数字の42が表示されたよ!」
「じゃあ、今度は別の42にしてみようか。今、42は"(ダブルクォート)で括ってあるよね。 これを取っちゃおう」

    TextView textView = (TextView) findViewById(R.id.textview);
    textView.setText(42);
}
「てんてんを取っただけ? なにか違うの?」
「実行してみたらわかるよ」
「あっ!」
「杏ちゃん! なんか変な画面になっちゃったよ! う、うんふぉー?」
「ハルキ落ち着いて。それは英語という言語だよ! アンフォーチュネトリー。 なにが書いてあるかはともかく、エラーが起きてアプリが強制終了するときにはこんな画面になるよ」
「私、悪いことしちゃったの? なにか間違えた?」
「大丈夫。ここはエラーになってもいいんだよ。 setTextに数値を入れてはいけないこと。文字列と数値は違うことをハルキに理解して欲しかったの」

数値を文字列に変換

「けど杏ちゃん。作ろうとしてるのは電卓でしょ?  結果を表示するのに数値を入れられないなら、どうすればいいの?」
「なかなか鋭いね。そう言う場合はString.valueOfを使えばいいんだよ」

    TextView textView = (TextView) findViewById(R.id.textview);
    textView.setText(String.valueOf(42));
}
「本当だ! ちゃんと42って表示されたよ! けど、なんで?」
「Androidアプリを開発するときに使うJava言語では、ダブルクォートで括られた文字は"文字列"として扱われる。 最初にハルキが試した"42"文字列で、次に試した42数値だったの」
「文字列と数値? どっちも同じ42だと思うけど……」
「数値は足したり引いたりといった計算が出来るよ。逆に言えば文字列は計算ができない。 さっきハルキが言ったように電卓を作るなら、数値として取り扱わないとダメ」
「けど、setTextは、数値を入れるとエラーになるよね」
「そう。だからこのString.valueOfで、数値を文字列に変換するの。 結果としてsetTextには"42"という文字列を入れることになる。だから問題なく動作したってわけ」
「括弧がいっぱい……わかりづらい」
「短縮して書いてるからね。こう書くこともできるよ」

    TextView textView = (TextView) findViewById(R.id.textview);
    String str = String.valueOf(42);
    textView.setText(str);
}
「……うん、わかった!」
「ぜんぜんわかってない顔だ……まだ変数のことを教えてないからしょうがないかな。 じゃあ次は、数値の計算と変数について説明するよ」
「えー、疲れた。少し休憩しようよ」
「……堪え性がないなぁ。まだ始まったばかりだよ。そんなことじゃいつまで経っても終わらないよ?」
「でもほら……お客さん用のお菓子もあるよ!」
「むぐぐ……ダメ! お菓子なんかにはつられないよ! 教えるといった以上、あたしにも責任というものが!」
最終更新日: 2015/09/03