ぐーたらIT

シロルのぐーたら休日録

IT技術について勉強メモを書いていくブログです。

Android Studio 目覚まし時計を作ってみる Part2

シロルです。
前回は適当にパーツを置く作業をやりました。
今回は入力したデータを取得して表示するところまでやっていきます。

では、
※既存のコードを消して貼り付けるとエラーが出ることがあります。付け足す感じで貼り付けることをおすすめします。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.enter).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                timeConf(mhours(), mminutes());
            }
        });
    }
    //時を取得
    private String mhours(){
        EditText Ehour=(EditText)this.findViewById(R.id.hour);
        String hour = Ehour.getText().toString();
        return hour;
    }
    //分を取得
    private String mminutes(){
        EditText Eminute=(EditText)this.findViewById(R.id.minute);
        String minute = Eminute.getText().toString();
        return minute;
    }
    //設定した時刻を表示
    private void timeConf(String h, String m){
        TextView confview=(TextView)this.findViewById(R.id.confview);
        confview.setText("設定した時間は " + h + ":" + m);
    }

では解説していきます。
setContentView(R.layout.activity_main);の下のコードです。

findViewById(R.id.enter).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            timeConf(mhours(), mminutes());
        }
    });

ここではボタンを押したときの処理を書いています。
findViewById(R.id.enter)でxmlファイルのenterというIDが振られたボタンと紐付けしています。
public void onClick()はボタンが押されたときに実行されます。
その下のtimeConf()は自作メソッドで設定した時間を表示します。引数となるメソッドはこの下です。

次に入力されたデータを取得するメソッドです。

    //時を取得
private String mhours(){
    EditText Ehour=(EditText)this.findViewById(R.id.hour);
    String hour = Ehour.getText().toString();
    return hour;
}
    //分を取得
private String mminutes(){
    EditText Eminute=(EditText)this.findViewById(R.id.minute);
    String minute = Eminute.getText().toString();
    return minute;
}

先ほどと同じようにIDと紐付けしています。(EditText)はなくてもいいですがあるとわかりやすいですね。
EditTextオブジェクトを取得してEminuteと名前を付けています。
Eminute.getText();で入力されたデータを取得します。
toString()でString型に変換します。

//設定した時刻を表示
private void timeConf(String h, String m){
    TextView confview=(TextView)this.findViewById(R.id.confview);
    confview.setText("設定した時間は " + h + ":" + m);
}

setTextでTextViewに設定した時刻を表示します。

timeConf(mhours(), mminutes());

先ほどのボタンを押したときに実行される処理です。
引数にメソッドを使っていますが、実際はそれぞれの戻り値を渡しています。

今回はここまでです。
次回はアラームを設定します。