スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

EditTextを追加

OnClickListener の記事では、ButtonをクリックするとTextViewの表示が変わるプログラムを作成してみました。

今回は、HTMLにおけるテキストボックスに相当するEditViewを導入して、自由に入力したテキストをTextViewに反映させましょう。


まずは、main.xmlを開いてEditViewをViewに追加します。

20110716_3
GUIのエディタで、TextViewとButtonの間にドラッグ&ドロップします。

20110716_4
EditTextが追加されました。


main.xml


EditText追加後の main.xmlのソースです。

<?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"
>
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hello">
</TextView>
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="EditText">
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"
android:layout_gravity="center">
</Button>
</LinearLayout>


ソースに変更をかけていきます。

EditText部分ですが、初期値として「EditText」という文字列が入力されていますがこれを削除します。

TextViewについては、テキストを

android:text="@string/pleaseinput"

と変えます。

Buttonも、テキストを

android:text="@string/buttonclick"

に変更です。

テキストを「"@string/..."」とするのは、strings.xmlの該当箇所を参照するという意味でしたね。

変更後のソースです。

<?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"
>
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/pleaseinput"
/>
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttonclick"
android:layout_gravity="center">
</Button>
</LinearLayout>


strings.xml


main.xmlでstrings.xmlへの参照部分を作ったので、strings.xmlを変更する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, HelloAndroid!</string>
<string name="app_name">HelloAndroid</string>
<string name="pleaseinput">入力してください。</string>
<string name="buttonclick">Click</string>
</resources>


項目pleaseinputの値を「入力してください。」に、項目buttonclickの値を「Click」にしました。

ここはmain.xmlで定義してもいいのですが、文字列はstrings.xmlですべて管理するようにすることでアプリケーションの構造が分かりやすくなるのではないかと思います。

たとえば文字列を変更するときに、どちらのファイルに定義されているか探すよりは、片方のファイルを探せば必ずたどり着くようにしておくほうが便利ですね。


HelloAndroid.java


残りはJavaファイルのソース変更です。

package sample.basic;

import android.app.Activity;
import android.os.Bundle;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.view.View;
import android.widget.TextView;
import android.widget.EditText;
import android.text.Editable;

public class HelloAndroid extends Activity implements OnClickListener{

private Button button1;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(this);
}

public void onClick(View v){
TextView textView1=(TextView)findViewById(R.id.textView1);
EditText editText1=(EditText)findViewById(R.id.editText1);
Editable input=editText1.getText();
textView1.setText(input+" と入力されました。");
}
}


変更したのは、EditTextクラス・Editableインタフェースをインポートしたことと、onClick()メソッドの中身です。

Editableインタフェースは、変更可能なテキストのためのインタフェースです。Stringクラスは、一度作った文字列を変更できないのに対して、Editableは変更可能なのでEditTextの文字列取得に向いています。

その文字列取得には、EditTextクラスのメソッドgetText()を使います。getText()メソッドは、Editable型を返します。

Editable input=editText1.getText();



さて実行します。

20110717_1
テキストを入力すると・・・

20110717_2
たとえば「Mobile」と入力してボタンを押すと、「Mobile と入力されました。」と表示されます。

関連記事
スポンサーサイト

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://androidhacker.blog94.fc2.com/tb.php/18-de911d1a
  • 閉じるボタン
レファレンス
月別アーカイブ
リンク
カテゴリ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。