エディトテキスト
今回も書籍から。前回の「ボタン作ってみる」を改造して作っていきます。テキストをユーザー入力してもらい、それをもとに計算をするプログラムをしていきます。だそうです。「ボタン作ってみる」のファイルを開いて下さい。そして
ファイル名「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のような計算をするということですね。 |
![]() |
こんな感じになりました。 |
いかがだったでしょうか。もう少しで基礎が終わります。そろそろ何を作りたいか心の中で叫んでおく必要がありますね。
では今回はこれで終わりです。
Androidプログラミング日記 (仮)
