반응형

AlertDialog

설명

  • 사용자에게 메시지를 전달 혹은 입력 받는 용도로 사용하는 팝업 기능
  • Dialog가 나타나 있을 때는 주변의 뷰를 누를 수 없다.

기본 코드

res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="click" />

</LinearLayout>
res/layout/dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <EditText
        android:id="@+id/dialogEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center" />

</LinearLayout>
MainActivity
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button = findViewById<Button>(R.id.button)

        button.setOnClickListener {
            val builder = AlertDialog.Builder(this)

            builder.setTitle("기본 다이얼로그")
            builder.setMessage("다이얼로그의 본문")
            builder.setIcon(R.mipmap.ic_launcher)

            val listener = DialogInterface.OnClickListener { dialog, which ->
                when (which) {
                    DialogInterface.BUTTON_POSITIVE -> {
                        val alertDialog = dialog as AlertDialog
                        val dialogEditText = alertDialog.findViewById<EditText>(R.id.dialogEditText)

                        Toast.makeText(this, dialogEditText?.text, Toast.LENGTH_SHORT).show()
                    }
                    DialogInterface.BUTTON_NEUTRAL -> Toast.makeText(this, "Neutral", Toast.LENGTH_SHORT).show()
                    DialogInterface.BUTTON_NEGATIVE -> Toast.makeText(this, "Negative", Toast.LENGTH_SHORT).show()
                }
            }

            builder.setView(layoutInflater.inflate(R.layout.dialog, null))

            builder.setPositiveButton("Positive", listener)
            builder.setNeutralButton("Neutral", listener)
            builder.setNegativeButton("Negative", listener)

            builder.show()
        }
    }
}

참고

반응형

'Development > Android' 카테고리의 다른 글

[Android] ListDialog  (0) 2021.02.09
[Android] ProgressDialog  (0) 2021.02.09
[Android] ActionBar  (0) 2021.02.09
[Android] PopupMenu  (0) 2021.02.09
[Android] ContextMenu  (0) 2021.02.09

+ Recent posts