...

サンプルページ2(テキスト入力とボタン)

by user

on
Category: Documents
5

views

Report

Comments

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
Fly UP