728x90
Dialog에 ListView를 표시할 수 있는 다이얼로그
Dialog는 Button을 총 3개까지 배치할 수 있는데 그 이상이 필요할 경우 List Dialog를 사용하면 된다.
package com.example.listdialog
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.SimpleAdapter
import androidx.appcompat.app.AlertDialog
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
val data1 = arrayOf("항목1","항목2","항목3","항목4","항목5","항목6","항목7","항목8")
val data2 = arrayOf("토고","프랑스","스위스","스페인","일본","독일","브라질","대한민국")
val data3 = intArrayOf(
R.drawable.imgflag1, R.drawable.imgflag2, R.drawable.imgflag3, R.drawable.imgflag4,
R.drawable.imgflag5, R.drawable.imgflag6, R.drawable.imgflag7, R.drawable.imgflag8,
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
val builder = AlertDialog.Builder(this)
builder.setTitle("리스트 다이얼로그")
builder.setNegativeButton("취소",null)
builder.setItems(data1) { dialogInterface, i ->
textView.text = "기본 리스트 다이얼로그 : ${data1[i]}"
}
builder.show()
}
button2.setOnClickListener {
val list1 = ArrayList<HashMap<String,Any?>>()
for (idx in data2.indices) {
val map = HashMap<String, Any?>()
map["data2"] = data2[idx]
map["data3"] = data3[idx]
list1.add(map)
}
val keys = arrayOf("data2","data3")
val ids = intArrayOf(R.id.custom_text,R.id.custom_image)
val adapter = SimpleAdapter(this,list1,R.layout.cusom_list,keys,ids)
val builder = AlertDialog.Builder(this)
builder.setTitle("커스텀 리스트 다이얼로그")
builder.setAdapter(adapter){dialogInterface,i ->
textView.text = "커스텀 리스트 다디얼로그 : ${data2[i]}"
}
builder.setNegativeButton("취소",null)
builder.show()
}
}
}
728x90
'안드로이드 > 메세징' 카테고리의 다른 글
안드로이드 Notification (0) | 2022.06.13 |
---|---|
안드로이드 항목 선택 Dialog (0) | 2022.06.13 |
안드로이드 Dialog (0) | 2022.06.13 |
안드로이드 SnackBar (0) | 2022.06.13 |
안드로이드 Toast (0) | 2022.06.09 |