如何解决如何将 OnClickListener 用于 AlertDialog Kotlin 中的项目?
所以我得到了这个关于 AlertDialog 的 Java 代码:
AlertDialog.Builder builder= new AlertDialog.Builder(context:this);
builder.setTitle("Pick Image")
.setItems(options,new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which){
if(which==0){
if(checkCameraPermission())pickFromcamera();
else requestCameraPermission();
} else{
if(checkStoragePermission()) pickFromGallery();
else requestStoragePermission();
}
}
}
我尝试在我的 Kotlin 项目中使用它,所以我对其进行了一些更改。我的代码看起来像:
val options: Array<String> = arrayOf("Kamera","Gallery")
val builder= AlertDialog.Builder(this)
builder.setTitle("Pilih Gambar")
.setItems(options,DialogInterface.OnClickListener(){
@Override
fun onClick(dialog: DialogInterface,which: Int){
if(which==0){
if(checkCameraPermission()){
pickFromCamera()
}
else{
requestCameraPermission()
}
}
else{
if(checkStoragePermission()){
pickFromGallery()
}
else{
requestStoragePermission()
}
}
}
})
.show()
但我在我的 setItems 中收到此错误: Expected 2 parameters of types DialogInterface!,Int
。为什么会发生这种情况?我做错了什么?
解决方法
您将 Java 与 Kotlin 结合在一起。假设您尝试在 Kotlin 中执行此操作,请尝试在 lambda 内部使用您的逻辑编写它。
val options: Array<String> = arrayOf("Kamera","Gallery")
val builder= AlertDialog.Builder(requireContext())
builder.setTitle("Pilih Gambar").setItems(options) { dialog,which ->
if(which==0){
if(checkCameraPermission()){
pickFromCamera()
}
else{
requestCameraPermission()
}
}
else{
if(checkStoragePermission()){
pickFromGallery()
}
else{
requestStoragePermission()
}
}
}
.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。