おとうさんスイッチ作ってみた

Android アプリ開発基礎 〜 java〜

アプリ開発のため、Android Studioの練習を日々行っています。
参考にしているサイトはこちら

nyan のアプリ開発
Android アプリ開発 Androidアプリの基本的な作り方を説明しています。ザックリ作って動かしてみようというコンセプトですから、細かい仕様はGoogleのReferenceを読んでください。Javaの1~10までがBasicなところ

今回はアプリ画面にボタンを追加し、挙動させるやり方を学んだので、
応用しておとうさんスイッチを 作ってみました。

ポイント

以下のコードでボタンが押されたときの挙動を設定することができます。

Button button = new Button()
button.setOnClickListener(v -> {
    ・・・
});

今回はswitch構文を使って、『あ』から『お』まで5文字に対してそれぞれ挙動を設定する、という手法を取りました。

ソースコード

package com.zerokaraapp.fatherswitch;

import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {

    private TextView textView;

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

        Button[] button = new Button[5];

        // リニアレイアウトの設定
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);

        layout.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT));

        // レイアウト中央寄せ
        layout.setGravity(Gravity.CENTER);

        // 背景色
        layout.setBackgroundColor(Color.rgb(0xdd, 0xff, 0xee));

        setContentView(layout);

        // dp単位を取得
        float dp = getResources().getDisplayMetrics().density;
        // Button 幅を250dpに設定
        int buttonWidth = (int)(250 * dp);
        // マージン 10dp に設定
        int margins = (int)(10 * dp);

        // TextViewの設定
        textView = new TextView(this);
        String str = "おとうさんスイッチ\n";
        textView.setText(str);
        textView.setTextColor(0xff000000);
        textView.setTextSize(15 *dp);
        layout.addView(textView,
                new LinearLayout.LayoutParams(
                        LinearLayout.LayoutParams.WRAP_CONTENT,
                        LinearLayout.LayoutParams.WRAP_CONTENT));

        int i = 0;
        //おとうさんスイッチ文字列を定義
        String[] word ={"あ","い","う","え","お"};

        //ボタンを設定
        for(Button btn : button) {
            btn = new Button(this);

            // Tag を設定する
            btn.setTag(String.valueOf(i));
            //ボタンの文字を設定
            btn.setText(String.format(Locale.US, "%s", word[i]));


            LinearLayout.LayoutParams buttonLayoutParams =
                    new LinearLayout.LayoutParams(buttonWidth,
                            ViewGroup.LayoutParams.WRAP_CONTENT);
            buttonLayoutParams.setMargins(margins, margins, margins, margins);

            btn.setLayoutParams(buttonLayoutParams);
            layout.addView(btn);

            // Listnerをセット

            switch(i){
                //あ
                case 0:
                    // lambda型
                    btn.setOnClickListener(v -> {
                        textView.setText("あたまをなでる\n");
                    });
                    break;
                //い
                case 1:
                    // lambda型
                    btn.setOnClickListener(v -> {
                        textView.setText("いたずらをする\n");
                    });
                    break;
                //う
                case 2:
                    // lambda型
                    btn.setOnClickListener(v -> {
                        textView.setText("うたをうたう\n");
                    });
                    break;
                //え
                case 3:
                    // lambda型
                    btn.setOnClickListener(v -> {
                        textView.setText("えいがをみる\n");
                    });
                    break;
                //お
                case 4:
                    // lambda型
                    btn.setOnClickListener(v -> {
                        textView.setText("おしりをふる\n");
                    });
                    break;

            }
            i++;
        }
    }
}

まとめ

今回は学んだことを活かし、おとうさんスイッチのアプリを作ってみました。

段々とですが、どのコードを書けばどんな挙動をするのかわかってきました。
今後は参考のサイトを読み進め、技術を蓄えていきたいと思います。

コメント

タイトルとURLをコピーしました