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

问题描述 投票:2回答:2

我试图打开相机同时点击按钮照片,但这个按钮是在adapterrecyclerview,我不能打电话给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()){

    }

}



}
android android-recyclerview android-camera android-viewholder
2个回答
0
投票

试试这段代码:

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,您需要处理运行时权限。我希望这将有所帮助。


0
投票

使用如下代码;

 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 ......

© www.soinside.com 2019 - 2024. All rights reserved.