Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中使用相机_Android_Kotlin_Camera_Fragment - Fatal编程技术网

在Android中使用相机

在Android中使用相机,android,kotlin,camera,fragment,Android,Kotlin,Camera,Fragment,我想使用我的一个应用程序片段中的照相机功能拍照。从现在起,每当我尝试进入另一个选项卡时,应用程序会立即关闭,而不会出现任何错误消息或警告 很抱歉,这可能是非常明显的事情,但这是我第一次尝试编程 这是我的片段代码: class ScanFragment : Fragment() { private val REQUEST_CODE = 69 private lateinit var imageView: ImageView private lateinit var btnTakePicture:

我想使用我的一个应用程序片段中的照相机功能拍照。从现在起,每当我尝试进入另一个选项卡时,应用程序会立即关闭,而不会出现任何错误消息或警告

很抱歉,这可能是非常明显的事情,但这是我第一次尝试编程

这是我的片段代码:

class ScanFragment : Fragment() {
private val REQUEST_CODE = 69
private lateinit var imageView: ImageView
private lateinit var btnTakePicture: Button
val Fragment.packageManager get() = activity?.packageManager

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    btnTakePicture.setOnClickListener{
        val takePictureIntent =  Intent(MediaStore.ACTION_IMAGE_CAPTURE)
        startActivityForResult(takePictureIntent, REQUEST_CODE)

    }

}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK){
        val takenImage = data?.extras?.get("data") as Bitmap
        imageView.setImageBitmap(takenImage) //Foto wird im ImageView dargestellt
    } else {
        super.onActivityResult(requestCode, resultCode, data)
    }
}


override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
)
: View? {
    // Inflate the layout for this fragment

    val v = inflater.inflate(R.layout.fragment_scan, container, false);
    btnTakePicture = v.findViewById(R.id.btnTakePicture)
    imageView = v.findViewById(R.id.imageView)
    return v
}
}
“”“

我不知道如何在Kotlin中实现,但我可以用Java向您展示

在你的片段上:

private ParentActivityClass myParentContext;

@Override
public void onAttach(@NotNull Context context) {
    super.onAttach(context);
    myParentContext= (ParentActivityClass) context;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    btnTakePicture.setOnClickListener(v -> {
        Intent intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
        myParentContext.startActivityForResult(intent, REQUEST_CODE)
    });
}

我想,它会起作用的。

谢谢你的回答。是否可以用java编写这一个片段,并将其余部分保存在kotlin中?因为我能找到的唯一解决方案是java。。