kotlin常见的几种dialog样式

main




    

    

 

activity

package com.example.zkotlin

import android.content.DialogInterface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.appcompat.app.AlertDialog
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity(), View.OnClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        btn_click.setOnClickListener(this)
        btn_dialog1.setOnClickListener(this)
        btn_dialog2.setOnClickListener(this)
        btn_dialog3.setOnClickListener(this)
    }

    override fun onClick(v: View?) {
        when (v!!.id) {
            R.id.btn_click -> {
                Log.e("TAG", "click button")
            }
            R.id.btn_dialog1 -> {
                getDialog();
            }
            R.id.btn_dialog2 -> {
                getItemDialog();
            }
            R.id.btn_dialog3 -> {
                getSelectDialog();
            }
        }
    }

    private fun getSelectDialog() {
        var sex : String = "男";
        val array2 = arrayOf("男", "女")
        val builder = AlertDialog.Builder(this)
        builder.setTitle("title")
        builder.setSingleChoiceItems(array2, 1) { dialog, which ->
            sex = array2[which]
            Log.e("TAG", "select ${array2[which]}")
        }
        val dialogClickListener = DialogInterface.OnClickListener { _, which ->
            when (which) {
                DialogInterface.BUTTON_POSITIVE -> {
                    Log.e("TAG", "click yes,$sex")
                }
                DialogInterface.BUTTON_NEGATIVE -> {
                    Log.e("TAG", "click no,$sex")
                }
            }
        }
        builder.setPositiveButton("YES", dialogClickListener)
        builder.setNegativeButton("No", dialogClickListener)
        builder.create().show();
    }

    private fun getDialog() {
        val builder = AlertDialog.Builder(this);
        builder.setTitle("title")
        builder.setMessage("message")

        val dialogClickListener = DialogInterface.OnClickListener { _, which ->
            when (which) {
                DialogInterface.BUTTON_POSITIVE -> {
                    Log.e("TAG", "click yes")
                }
                DialogInterface.BUTTON_NEGATIVE -> {
                    Log.e("TAG", "click no")
                }
            }
        }
        builder.setPositiveButton("YES", dialogClickListener)
        builder.setNegativeButton("No", dialogClickListener)
        builder.create().show();
    }

    private fun getItemDialog() {
        val array1 = arrayOf("张飞", "赵云", "刘备", "孙权")
        val builder = AlertDialog.Builder(this);
        builder.setTitle("title")
        builder.setIcon(R.mipmap.ic_launcher)
        val dialogClickListener = DialogInterface.OnClickListener { dialog, which ->
            Log.e("TAG", "click ${array1[which]}")
        }
        builder.setItems(array1, dialogClickListener)
        builder.create().show()
    }

}

输出结果:

kotlin常见的几种dialog样式_第1张图片

你可能感兴趣的:(kotlin学习)