setTextでNotFoundException!

Androidのコーディングについての話です。 同じ処理でも書き方次第で構文エラーになるケースと実行時エラーになるケースがあり、少し嵌ってしまったのでまとめておきます。 例えば TextView に番号を表示するプログラムがあるとします。 以下のコードは構文エラーとなり、そもそも実行することができません。 ((TextView) findViewById(R.id.textHello)).setText(1); これはまあ理屈としては分かります。 引数の型が違うので当然といえば当然です。 と、このときは思っていました。 しかし、以下の書き方では構文エラーにはなりません。 int i = 1; ((TextView) findViewById(R.id.textHello)).setText(i); 正常にビルド可能ですが実行時エラーとなります。 これを実際に実行してみると以下のようなエラーが出ます。 Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1 at android.content.res.Resources.getText(Resources.java:338) at android.widget.TextView.setText(TextView.java:5494) こ…

続きを読む

TextView, EditTextの装飾

TextViewやEditTextを装飾する方法をまとめます。 方法は、drawble配下に装飾用の定義を記述したxmlファイルを用意しておき、Viewのバックグラウンドに指定するだけです。 xmlファイルを追加は、プロジェクトメニューの drawbleを右クリック → New → File で追加します。 ファイル名は任意で、view_frame.xmlとした場合、適用したいViewに以下のように設定します。 android:background="@drawble/view_frame" xmlファイルには、shapeタグとその子要素によって記述します。 どのように記述していくのかを見ていきます。 枠線をつける <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="2dp" android:color="#232323" /> </shape> strokeタグでEditTextに枠線をつけます。 widthで線の幅、colorで色を指定できます。 …

続きを読む

もっと見る

スポンサーリンク