アプリ開発のため、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++;
}
}
}
まとめ
今回は学んだことを活かし、おとうさんスイッチのアプリを作ってみました。
段々とですが、どのコードを書けばどんな挙動をするのかわかってきました。
今後は参考のサイトを読み進め、技術を蓄えていきたいと思います。
コメント