如何打开相机,或从 recyclerview 项目中的按钮调用 startActivityForResult

How to open camera , or call startActivityForResult from a button in recycleriew item

我试图在单击按钮照片时打开 相机,但此按钮位于 recyclerviewadapter 中,我无法调用 startActivityForResult ,有什么办法吗?或其他启动 相机 并以相同方式拍照的方法,请向我解释如何处理以及为什么我不能调用 startActivityForResult ,我看到了以前的答案和我没听懂,这是我的代码,

谢谢。

class DommageViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

TextView dommage,componant,side;
Button act_photo;

public DommageViewHolder(View itemView) {
    super(itemView);
    dommage=(TextView)itemView.findViewById(R.id.dommage_value);
    componant=(TextView)itemView.findViewById(R.id.componant_value);
    side=(TextView)itemView.findViewById(R.id.side_value);
    act_photo = (Button)itemView.findViewById(R.id.btn_photo_dommage);

    act_photo.setOnClickListener(this);
}

public void bind(DommageGlobale myObject) {
    dommage.setText(myObject.getDammage());
    componant.setText(myObject.getComponant());
    side.setText(myObject.getSide());

}

public interface OnCameraButtoClick{
    void onClick();
}

@Override
public void onClick(View view) {
    if(view.getId() == act_photo.getId()){

    }

}



}

像下面的代码一样使用;

 holder.upload_doc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
             taskDiscussionId=   mDataset.get(position).getTaskdiscussId();
                uploadImage();
            }
        });

uploadImage()这样定义;

private void uploadImage() {

   Intent intent = new Intent();
   intent.setType("*/*");
   intent.setAction(Intent.ACTION_GET_CONTENT);
   startActivityForResult(Intent.createChooser(intent,"Choose File to Upload.."),PICK_FILE_REQUEST);
}

现在您可以定义 startActivityForResult ...

试试这个代码:

在您的 if(view.getId() == act_photo.getId()){ HERE }

中调用以下方法
public void OpenCamera(){
 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
            view.getContext().startActivity(intent);
}

不要忘记为您的 AndroidManifest.xml 文件添加权限:

<uses-permission android:name="android.permission.CAMERA"/>

此外,对于 Marshmallow 之后的版本,您需要处理运行时权限。 我希望这会有所帮助。