Comments
Description
Transcript
サンプルページ2(テキスト入力とボタン)
12.2. テキスト入力 TextEdit とボタン Button TextEdit はテキスト入力欄で、Button は押しボタンです。これらをそれぞれ 1 個づ つ備えた画面を作ります。 ●プロジェクト作成 Eclipse で、[新規]-[Android プロジェクト]を実行し、次の値を設定してプロジェクト を作成します。プロジェクトが作成できたら、パッケージエクスプローラの中のこの プロジェクトのところで右クリックし、「プロパティ」を表示します。「リソース」タ ブを表示し、テキスト・ファイル・エンコードの項目で「その他 UTF-8」を選択し ます。 プロジェクト名 Button1 パッケージ名 com.myandroid アクティビティ名 Button1 アプリケーション名 Button ●res/layout/button1.xml レイアウトのリソースを作ります。この XML は、画面に表示される部品を設定する ものです。button1.xml というファイル名は任意につけてかまいませんが、プログラ ムコードの中でこのファイル名を使いますので、一致していなければいけません。こ の点についてはコードのところで説明します。 ① 画面は縦長 ② EditText 要素を作ります。id は edit とします。 ③ Button 要素を作ります。id は bt1 です。 ④ ボタンに表示されるテキストは android:text プロパティで指定します。ここでは res/values/string.xml にある go プロパティの値をボタン面に表示します。go プ ロパティの値は”GO”です。 ★button1.xml <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical"・・・① android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/edit"・・・② android:layout_width="fill_parent" 214 android:layout_height="wrap_content"/> <Button android:id="@+id/bt1"・・・③ android:text="@string/go"・・・④ android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> </ScrollView> ●res/values/strings.xml Valuesリソースは文字通り「値」を設定するものです。<string>要素のnameプロパティと 開始タグと終了タグの間に値を書きます。つまり、goというプロパティの値はGOであると いうことが書いてあります。helloとかapp_nameはAndroid Development Tool プラグイン が自動的に作ってくれるものです。 ★strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, Controls</string> <string name="app_name">Button</string> <string name="go">GO</string> </resources> ●Button1.java EditText や Button をつくり、そこで使われる文字はリソースの XML ファイルで設 定されますが、その動作を作りこむのはプログラムコードです。 ① button1.xml の内容を表示します。XML ファイル名は前に決めたものと一致して いなければなりません。 ② button1.xml の③にあるボタンの id を使ってボタンのインスタンスを取得します。 ③ OnClickListener を設定して、ボタンを押したら何か動作するようにします。 ④ ボタンに付ける OnClickListener クラスの定義です。 ⑤ ボタンが押されるとコールされるメソッドです。 ⑥ button1.xml に書いた id が edit である EditText 要素を取得します。 ⑦ 入力された文字列を取得します。 ⑧ Toast クラスを使うと、簡単にメッセージを表示して自動的に消えるダイアログを 作ることができます。makeText()メソッドは表示内容をセットするメソッドで、 第 1 引数はコンテキスト、第 2 引数は表示する文字列、第 3 引数は表示する時間 的長さです。show()メソッドで表示します。 ★Button1.java package com.myandroid; import android.app.Activity; 215 import android.os.Bundle; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import android.view.View; public class Button1 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //wv = new WebView(this);・・・⑨ setContentView(R.layout.button1);・・・① Button bt = (Button)findViewById(R.id.bt1);・・・② bt.setOnClickListener(mCorkyListener);・・・③ } private View.OnClickListener mCorkyListener = new View.OnClickListener()・・・④ { public void onClick(View v)・・・⑤ { EditText etext = (EditText)findViewById(R.id.edit);・・・⑥ String str = etext.getText().toString();・・・⑦ Toast.makeText(Button1.this, str, Toast.LENGTH_SHORT).show();・・・⑧ } }; } ●実行 実行すると次のようにテキスト入力欄 EditText とボタンが表示されます。ここで、 おきな問題があります。それは、現在のところ日本語が入力できないことです。 216 ▲起動した状態 025 何か文字を入力してボタンを押すと、入力した文字がメッセージとなって表示され、 数 秒 す る と 自 動 的 に 消 え ま す 。 makeText() メ ソ ッ ド の 第 3 引 数 を Toast.LENGTH_LONG にすると表示時間が長くなります。 ▲起動した状態 026 217