Android ユーザーインターフェース応用 ウィジェット TextView,EditText 【Android Tips】

この記事は2013年4月10日に書かれたものです。内容が古い可能性がありますのでご注意ください。


レイアウトxmlファイル

<EditText
  android:id="@+id/editText1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" />

javaファイル

package com.example.edittext;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		final EditText editText = (EditText) findViewById(R.id.editText1);

		Button button = (Button) findViewById(R.id.button1);
		button.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				String str = editText.getText().toString();

				Toast.makeText(MainActivity.this, str + "を選択しました。",
						Toast.LENGTH_SHORT).show();
			}

		});
	}
}

さて基本的にはTextViewと同じ流れですが、特筆すべきは18行目と25行目でしょう。
なぜ25行目の処理を19行目に記述していないのでしょうか?
これは処理の問題です。

実はonCreate()内には初期化処理等を記述します。(詳細は後述の「Activityのライフサイクル」を参照)
したがって、EditTextのインスタンス化は18行目で問題がないのですが、「入力された値をString型に変換して、変数strに代入する」というロジックをここに記述してしまうと、値を取得できません。

簡単な流れをイメージすると・・・

  1. アプリを起動する
  2. 初期化処理(18~21行目)が実行される
  3. EditTextに文字が入力される
  4. Buttonがクリックされたときに、24行目のコールバックメソッドが実行される。
  5. 25行目でEditTextに入力された内容をString型に変換する
  6. 27行目で、変換されている入力内容をToast内に表示させる

このような流れになります。
つまり24行目のコールバックメソッドであるonClick()の外は、onCreate()内であるため、ここに記述する内容は初期化処理ということになります。したがって、このような順番になります。いかがでしょうか?イメージができればそこまで難しい話ではありませんね。

[clearboth]

ページ:
1

2

関連記事

  1. 【機種変・引き継ぎ】勝手にAndroid情報局@新年特別編【メー…

  2. RadioButton(単体のRadioGroup)とToast…

  3. Android 開発環境の構築③ 【Android TIPS】

  4. 【Android】 Spinnerの利用方法とSpinnerもど…

  5. OptionMenuを使ったAndroidサンプルアプリ

おすすめ記事

  1. CSS3

    CSS練習問題 第12回

  2. CSS3

    CSS練習問題 第11回

  3. CSS3

    CSS練習問題 第10回

  4. 【Linux】CentOS8をインストールしてみた。【VM】

  5. CSS3

    CSS練習問題 第9回

カテゴリー

TECH PJIN著書

PAGE TOP