반응형
DialogFragment
설명
- AlertDialog를 Fragment로 만들어 사용할 수 있도록 제공되는 Fragment
코드
TestDialogFragmentclass TestDialogFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val listener = DialogListener()
val builder = AlertDialog.Builder(activity)
builder.setTitle("타이틀")
builder.setMessage("메시지")
builder.setPositiveButton("positive", listener)
builder.setNeutralButton("neutral", listener)
builder.setNegativeButton("negative", listener)
return builder.create()
}
inner class DialogListener : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface?, which: Int) {
val mainActivity = activity as MainActivity
when (which) {
DialogInterface.BUTTON_POSITIVE -> mainActivity.textView?.text = "positive"
DialogInterface.BUTTON_NEUTRAL -> mainActivity.textView?.text = "neutral"
DialogInterface.BUTTON_NEGATIVE -> mainActivity.textView?.text = "negative"
}
}
}
}
res/layout/activity_main.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">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="click" />
</LinearLayout>
MainActivity
class MainActivity : AppCompatActivity() {
var textView: TextView? = null
var button: Button? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textView = findViewById(R.id.textView)
button = findViewById(R.id.button)
button?.setOnClickListener {
val dialog = TestDialogFragment()
dialog.show(supportFragmentManager, "TestDialog")
}
}
}
참고
반응형
'Development > Android' 카테고리의 다른 글
[Android] BroadcastReceiver (0) | 2021.02.09 |
---|---|
[Android] Thread & Handler (0) | 2021.02.09 |
[Android] ListFragment (0) | 2021.02.09 |
[Android] Fragment (0) | 2021.02.09 |
[Android] DatePicker (0) | 2021.02.09 |