반응형
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 |