Translate

BTemplates.com

Powered by Blogger.

2018年2月11日日曜日

2018‐02‐11 到達点メモ


今日は、自作ダイアログを適応させて
コード上でボタンを追加させるという事を行った。
*実装はKotlinです。

結果は以下のような感じ




ダイアログにカスタムレイアウト適応するのはさほど難しくなかったが
追加するのがちょっと面倒だった。

具体的には以下のような感じに実装

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
    // Use the Builder class for convenient dialog construction    val builder = AlertDialog.Builder(activity)
    val view:View = LayoutInflater.from(activity).inflate(R.layout.applimit_dialog,null)
    builder.setTitle("test")
           .setView(view)
    // Create the AlertDialog object and return it    return builder.create()
}

override fun onStart() {
    super.onStart()
    var textView:TextView = dialog.findViewById(R.id.copyTextView)
    textView.text = "ChangeText"    val button:Button = Button(activity)
    val layout = dialog.findViewById<ConstraintLayout>(R.id.applimit_dialog)
    layout.addView(button)

}

メモとして、Builderの中身の変更はonStartで行う。
また、onStartに処理を書けば
ダイアログを呼び出す度に内容を変更することができる

あと、微妙につまったのがレイアウトを取りたい時に
dialog.findViewById<>()の<>の中身の指定の仕方が
最初わからなかった。
以下のように指定すればいいと分かるとそんなに難しくはないが。
dialog.findViewById<ConstraintLayout>(R.id.applimit_dialog)

あと、複数を動的に表示したくて調べたが
とりあえず、今回の件ではView.OnLayoutChangeListenerは使わない。

参考サイト:Kotlin(Java)コード上でConstraintLayoutの制約を編集する
参考サイト:DialogFragmentにカスタムビューを設定

現状だと、大きさの変更をする必要があるので
そこの対策?がいるがやりたいことや確認したいことは大体確認できたので
今日はここまで。

0 コメント:

コメントを投稿