平凡エンジニアからの出発

一に努力、二に理想、三に積小為大。

【AndroidTraining】Button 1

Lesson

Button 1

Mission

下記の仕様を満たすアプリを作りましょう。

  • Buttonを押下すると、Toastを表示する

Snap Shot

f:id:atuyan39:20210402001059p:plain
Button 1

Step by Step

  1. src\main\res\layout\activity_main.xmlにButtonを追加する(android:id="@+id/button")
    →Desine > palette > Buttonのウィジェットをドラック&ドロップ > 制約(constraint)をつける
  2. findViewId(R.id.button)を使い、ButtonのViewを取得する
    R.layout.activity_mainに定義されているidのView(TextView)を取得する。
  3. Buttonに対して、View.OnClickListenerを設定する
        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Button押下時の処理を記載する
            }
        });

4 . Toastを表示する

Toast.makeText(getApplicationContext(), "Click!!", Toast.LENGTH_SHORT).show();

Code

AndroidTraining/Button/app/src/main at main · atuyan39/AndroidTraining · GitHub

Reference

https://developer.android.com/guide/topics/ui/controls/button?hl=ja

https://developer.android.com/guide/topics/ui/notifiers/toasts?hl=ja

Memo

実装の方法は色々とあるので、覚えておきましょう。

ラムダ式活用

        Button button = findViewById(R.id.button);
        button.setOnClickListener(v -> {
            // Button押下時の処理を記載する
            Toast.makeText(getApplicationContext(), "Click!!", Toast.LENGTH_SHORT).show();
        });

◆layout側でandroid:onClick属性を追加をすることで、setOnClickListenerを記載不要になります。

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:onClick="showToast"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />
public class MainActivity extends AppCompatActivity {

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

    public void showToast(View view) {
        Toast.makeText(getApplicationContext(), "Click!!", Toast.LENGTH_SHORT).show();
    }
}