エディトテキスト
今回も書籍から。前回の「ボタン作ってみる」を改造して作っていきます。テキストをユーザー入力してもらい、それをもとに計算をするプログラムをしていきます。だそうです。「ボタン作ってみる」のファイルを開いて下さい。そして
ファイル名「main.xml」 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/TextView01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:textSize="12pt" /> <Button android:id="@+id/Button01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/Button01" /> </LinearLayout> |
||
前回のこれを | ||
ファイル名「main.xml」 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/TextView01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:textSize="12pt" /> |
このファイルでの順番にレイアウトされるので、テキスト>エディトテキスト>ボタン の順番にします。 <EditText/>を付け加えました。内容も上から呼び出すためのID、大きさ、幅、高さでしょうか。ちなみに「fill_parent」は画面いっぱい「wrap_content」は定数らしいです。 |
ファイル「String.xml」 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">ボタンを押してね。 <string name="Button01">クリック <string name="app_name">Botan </resources> |
||
前回のこれを | ||
ファイル名「String.xml」 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">数字を入力してください。 <string name="Button01">クリック <string name="app_name">Botan </resources> |
これは表示テキストを変えているだけですね。 |
ファイル「BotanActivity.java」 package and.roid; import android.app.Activity; import android.os.Bundle; import android.view.*; import android.view.View.OnClickListener; import android.widget.*; public class BotanActivity extends Activity { private TextView text1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text1 = (TextView)this.findViewById(R.id.TextView01); Button btn1 = (Button)this.findViewById(R.id.Button01); btn1.setOnClickListener(new MyClickAdapter()); } class MyClickAdapter implements OnClickListener { public void onClick(View view){ text1.setText("クリックしました!"); } } } |
||
前回のこれを | ||
ファイル名「BotanActivity.java」 package and.roid; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.view.*; import android.view.View.OnClickListener; import android.widget.*; public class BotanActivity extends Activity { private EditText edit1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); edit1 = (EditText)this.findViewById(R.id.EditText01); Button btn1 = (Button)this.findViewById(R.id.Button01); btn1.setOnClickListener(new MyClickAdapter()); } class MyClickAdapter implements OnClickListener { public void onClick(View view){ Editable e = edit1.getText(); int n = Integer.parseInt(e.toString()); int total = 0; for(int i = n;i > 0;i--){ total += i; } Toast toast = Toast.makeText(getApplicationContext(), "合計:"+total, Toast.LENGTH_LONG); toast.show(); } } } |
private EditText edit1; edit1 = (EditText)this.findViewById(R.id.EditText01); テキスト「数字を入力してください」は変更とかはなく設定する必要はないので消して、エディトテキストを配置します。 Editable e = edit1.getText(); 新しいメソッドが出てきました。よくわかりませんが、、getText();のゲットから、エディットテキストからテキストを取り出す(ゲットする)というこでしょう。 int n = Integer.parseInt(e.toString()); 変数nに何か入れています。e.toString()からエディトテキストから取り出したテキストを、 Integerはテキストの前にきてカッコを付けると、どの言語でもだいたい数値にするというのが多いので、数値に変換するということのはず。 int total = 0; 変数totalを0にして設定。 for(int i = n;i > 0;i--){ 有名なコードですね。設定された数字分for{}で囲まれた中身を繰り返すというものです。total += i;は total = total + i ということの略です。 ということなので、テキストで取り出した回数n回分(int i = n)をマイナスしながら(i-- 10>9>8・・のように)値が0以上なら(i > 0){}内をtotal += iを繰り返すということになっています。つまり 2なら1+2、5なら1+2+3+4+5、10なら1+2+3+・・9+10のような計算をするということですね。 |
こんな感じになりました。 |
いかがだったでしょうか。もう少しで基礎が終わります。そろそろ何を作りたいか心の中で叫んでおく必要がありますね。
では今回はこれで終わりです。