EditTextクラスを使用する。

次にEditTextクラスを学んでいきます。

EditTextクラスに関してはユーザーがテキストを入力する事ができるエリアになっており。ユーザーが入力された値を取得する事が簡単にできるクラスになっています。

editText

アンドロイドでは、

1、クリックでテキスト入力

2、テキスト入力時のイベントの送出

の2点をチェックボックスが自動で行ってくれます。

 

作り方

 

最初にeTextというプロジェクトを作成します。

作成が完了したら、main.xmlのファイルを開きます。

※main.xmlでは【graphical layout】で作業を行うと簡単にレイアウトの変更ができます。

TextViewクラスがデフォルトで中に配置されていると思いますが、削除をします。

 

次に、項目の中からEditTextをドラッグして、main.xmlの中にいれます。

今回のEditTextの確認の為にTextFiedクラスを新たに作成をして追加して、LinerLayoutの中にいれます。

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <EditText 
 android:text="EditText" 
 android:id="@+id/editText1" 
 android:layout_height="wrap_content" 
 android:layout_width="fill_parent"
 android:paddingTop="10sp"></EditText>
 <TextView 
 android:text="TextView" 
 android:id="@+id/textView1" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content"></TextView>
</LinearLayout>

上記のようなmain.xmlになっているかと思います。もしidなどがなければ必要になりますので、追加をしておいてください。

 

ここで一度パブリッシュをしてみてください。

editText

パブリッシュされたアプリで、EditTextをクリックすると、テキスト編集画面が出るのがわかります。自動で、EditTextが作成されました。

 

では、続いて、編集した文字をスクリプトで取得をしてみましょう。

まず、最初に行うのは配置したオブジェクトを読み込む為の変数を用意します。

private EditText _editText;
private TextView _textView;

次にコンストラクタで、この変数にオブジェクトを読み込みます。

_editText = (EditText)findViewById(R.id.editText1);
_textView = (TextView)findViewById(R.id.textView1);

エディットイベントを取得する為には、OnEditorActionListenerをimplementsする必要があり、イベントをEditTextに結びつける必要があります。

イベントが取得された際にonEditorActionが実行されますが、このイベントに関してはENTERキーを押した時に発動。と言う仕様になっており、とても使いづらいイベントになっています。

なので、値が必要になった時に応じて、getText()で値を取得できるので、このイベントは強いて使う必要はないかもしれません。

package andante.in.android.etext;

import android.app.Activity;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;

public class eText extends Activity implements OnEditorActionListener{
 /** Called when the activity is first created. */
 private EditText _editText;
 private TextView _textView;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 _editText = (EditText)findViewById(R.id.editText1);
 _textView = (TextView)findViewById(R.id.textView1);
 _editText.setOnEditorActionListener(this);
 }

 public boolean onEditorAction(TextView testview, int id, KeyEvent keyEvent) {
 _textView.setText(_editText.getText());
 return true;
 }
}

使いにくいイベントとは裏腹におくだけで簡単に利用できるEditTextはとても使いやすいと思います。

 

追記

 

テキストの変更の際にイベントを発行するクラスがありました。addTextChangedListenerを追加するのですが、これはimplementsなどは必要はないのですが、イベント発生時の関数は用意しておく必要があります。

再度tChangeと言うprojectを作成して下記のようなスクリプトに変更をしたらテキスト変更毎にテキストの取得が可能となりました。

package in.andante.android.tchange;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

public class tChange extends Activity {
 /** Called when the activity is first created. */
 
 private EditText _editText;
 private TextView _textView;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 _editText = (EditText)findViewById(R.id.editText1);
 _textView = (TextView)findViewById(R.id.textView1);
 _editText.addTextChangedListener(watchHandler);
 }
 private TextWatcher watchHandler = new TextWatcher() {
 @Override
 public void afterTextChanged(Editable s) {
 }

 @Override
 public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 }

 @Override
 public void onTextChanged(CharSequence s, int start, int before, int count) {
 _textView.setText(s);
 }
 };
}

 

addTextChangedListener部分に関しては下記のブログは参照させていただきました。

Androidアプリ入門 No.11 EditTextのActivityからの操作 – コンピュータクワガタ

 

 

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑