EditTextから取得した値をIntentを使って別Activityに表示させるだけで丸一日かかった
知識0からと言いましたがアプリ作成自体は4日前くらいから始めてるので導入とかはないです。
とりあえず今の状況
作るもの・・・酔覚めチェッカー
仕様・・・体重、体質、アルコール度数と飲んだ量を入力すると呼気中のアルコール濃度と酔いから覚めるまでの時間を表示
進捗
UIはこんな感じ
計算開始を押すと別Activityで計算結果を表示するようにしたかった。
ひとまず体重を入力して計算開始を押したら入力した数値が別Activityに表示されるようにしてみたい。
なので、計算結果ボタンのonClickメソッドにこんな感じの記述を追加。
public void onClick(View view) {
EditText edit=(EditText)findViewById(R.id.editText);・・・①
Editable getText=edit.getText();・・・②
int int_text=Integer.parseInt(getText.toString());・・・③
Intent intent = new Intent(MainActivity.this, Result.class);・・・④
intent.putExtra("DATA1",int_text);・・・⑤
startActivity(intent);・・・⑥
}
① 体重EditTextのIDを取得
② 文字列を取得
③ 文字列を数値に変換
④ Intent作成
⑤ putExtraで数値を送る
⑥ Activity移動
書いた処理が果たして合ってるかは自信ないけど動くので問題なし。
なんでこれだけの作業に1日費やしたかというと、上の①②③を書く位置を間違えてました。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText edit=(EditText)findViewById(R.id.editText);・・・①
Editable getText=edit.getText();・・・②
int int_text=Integer.parseInt(getText.toString());・・・③
こんな感じでonCreateの下に書いてました。
コンパイルは正常にできるのが余計わかりにくい。
こういった処理はonClickの下に書こう!
ちなみに受け取り側
Intent intent=getIntent();・・・①
int data1=intent.getIntExtra("DATA1",0);・・・②
((TextView)this.findViewById(R.id.textView5)).setText(String.valueOf(data1));・・・③
①で呼び出して②で定義して③で文字列に変換してTextViewにぶちこむ。
②のdata1は数値なのでいろいろ弄れる。
これをアルコール度数と飲酒量の分も作って計算式に入れて結果を表示させれば完成なはず。
あと最初の入力時に空欄で計算開始押すとアプリが落ちるから例外処理が必要っぽい。
例外処理よくわかってないからやりたくないけど仕方ない。
終わり!