SyntaxHighlighter

2010年9月28日火曜日

Android解説 layout その4

findViewById項目の入力と出力)

いよいよ、プログラムに手を付けます。
今まで、作成した項目(テキストボックスやボタン等)はAndroidではwidgetウィジェット)と表現します。
widgetごとにクラスをimportしておく必要があります。
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
これが今回使用する分ですが、「そんなのわかんね~よ」という場合にはEclipseの便利な機能を使用します。
下図を参照してほしいのですが、該当するwidgetが使用するクラスをimportしていないとエラーとなります。矢印の部分をクリックするとエラーの解決候補が画面に表示されます。
たいていの場合はimport忘れなので、赤枠の部分をダブルクリックすると、import文がソースに挿入されます。








では、実際の入出力のコーディングですが
final Button btn_entry = (Button) findViewById(R.id.btn_entry);
のように書きます。この例は画面上の「btn_entry」という名前のボタン情報を入力するコーディングです。テキストボックスの情報を得るには「Button」の部分を「EditText」に置き換えます。左側の変数「btn_entry」はワークエリアなので別に他の名前でもかまいません。右側の「btn_entry 」は「R.id.」にmain.xmlandroid:id="@+id/btn_entry"と設定した名称の「btn_entry」を付けなければなりません。
他のwidgetは下記のようになります。
final EditText text_name = (EditText) findViewById(R.id.text_name);
final CheckBox ck_android = (CheckBox) findViewById(R.id.ck_android);
final RadioGroup rg_sex = (RadioGroup) findViewById(R.id.rg_sex);

では、ワークエリアにセットされた値の取り出し方ですが、これは各widgetにより異なります。下記コーディングサンプルを参照してください。
       private void entryResult() {
              String entry_Naiyo;
              /* テキストボックスの値取得 */
              final EditText text_name = (EditText) findViewById(R.id.text_name);
              entry_Naiyo="あなたは"+text_name.getText().toString()+"さんで";
             
              /* チェックボックスの値取得 */
              final CheckBox ck_android = (CheckBox) findViewById(R.id.ck_android);
              if (ck_android.isChecked())
                     entry_Naiyo=entry_Naiyo + "Androidに興味がある";
              else
                     entry_Naiyo=entry_Naiyo + "Androidに興味がない";
             
              /* ラジオボタンの値取得 */
              final RadioGroup rg_sex = (RadioGroup) findViewById(R.id.rg_sex);
              switch (rg_sex.getCheckedRadioButtonId()) {
              case R.id.rb_man:
                     entry_Naiyo=entry_Naiyo + "男性です。 ";
                     break;
              case R.id.rb_woman:
                     entry_Naiyo=entry_Naiyo + "女性です。 ";
                     break;
              }
             
              /* テキストボックスに値をセット */
              final EditText text_entry = (EditText) findViewById(R.id.text_entry);
              text_entry.setText(entry_Naiyo);
             
       }     


最後の2行はテキストボックスに値を代入する方法です。
Javaでは、データの入出力に関して、下記のようなネーミングルールがありますので、コードを読むときに参考にしてください。
なお、「Xxxx」一文字目を大文字にするということを現しています。
・データを得る  getXxxx
・データを書く  setXxxx(またはputXxxxx


次回はイベントリスナー(event listener)についてです。






0 件のコメント:

コメントを投稿