■ はじめに
Android の ダイアログ表示について、学ぶ。
■ サンプル
Kotlin
1)DialogFragmentクラスを継承したクラスを作成する 2)1)のクラスに対して、onCreateDialogをオーバライドして その中でAlertDialogを作成する 3)1)のインスタンスを作成する 4)3)をshow() する
SimpleDialogFragment.kt
import android.app.AlertDialog import android.app.Dialog import android.os.Bundle import android.widget.Toast import androidx.fragment.app.DialogFragment class SimpleDialogFragment : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val context = this.context if (context == null) { return super.onCreateDialog(savedInstanceState) } val builder = AlertDialog.Builder(context).apply { setTitle("Title : Hello") setMessage("Message : Message") // OKボタン setPositiveButton("OK!") { dialog, id -> Toast.makeText( context, "Select OK!!!", Toast.LENGTH_SHORT).show() } // キャンセルボタン setNegativeButton("Cancel") { dialog, id -> Toast.makeText( context, "Select Cancel...", Toast.LENGTH_SHORT).show() } } return builder.create() } }
activity_main.xml
* button x 1 を画面に追加
MainActivity.kt
// ...略... button.setOnClickListener { var dialog = SimpleDialogFragment() dialog.show( supportFragmentManager, "alert") }
Java
* OKボタンのダイアログを表示する => AlertDialog を使う * 結構、メンドくさい。
activity_main.xml
* button x 1 を画面に追加
MainActivity.java
import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity implements OnClickListener { private Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.button1 = (Button) findViewById(R.id.button1); this.button1.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: // ★ここで表示★ AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle("Hello, Title!"); dialog.setMessage("Hello, Dialog Message!"); // ★OKボタン★ dialog.setPositiveButton("OK", null); dialog.show(); break; } } }
参考資料
kotlin
https://101010.fun/posts/android-try-dialog.html
https://qiita.com/hokutonikukyu/items/ebbc0318c07035e04bf7
Java
色々なサイトを見たが、以下が一番分かりやすい
関連記事
ダイアログ表示 ~ 入門編 / トースト・Toast ~
https://dk521123.hatenablog.com/entry/2013/10/14/002656
ダイアログ表示 ~ 基本編 / YES/NO/CANCELボタン ~
https://dk521123.hatenablog.com/entry/2013/10/06/122942
ダイアログ表示 ~ 基本編 / リスト選択 ~
https://dk521123.hatenablog.com/entry/2013/10/07/005850
ダイアログ表示 ~ 基本編 / チェックボックス・ラジオボタン ~
https://dk521123.hatenablog.com/entry/2013/10/09/001500
ダイアログ表示 ~ 基本編 / 日付・時間ダイアログ ~
https://dk521123.hatenablog.com/entry/2020/07/26/000000
ダイアログ表示 ~ 基本編 / Notification(通知) ~
https://dk521123.hatenablog.com/entry/2020/08/01/000000
アラーム機能を実装するには
https://dk521123.hatenablog.com/entry/2020/07/14/000000