1

我试图打开相机而在按钮照片点击呼叫startActivityForResult,但这个按钮是在recyclerviewadapter,我不能打电话startActivityForResult,有没有办法做到这一点?还是别的什么,开始相机和拍照一样的方式,请解释我如何处理,为什么我不能打电话startActivityForResult,我看到前面的答案,我并没有得到很好,这里是我的代码,如何打开相机,或从一个按钮recycleriew项目

谢谢。

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()){ 

    } 

} 



} 

回答

1

试试这个代码:里面你if(view.getId() == act_photo.getId()){ HERE }

public void OpenCamera(){ 
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
      view.getContext().startActivity(intent); 
} 

呼叫fellowing方法

不要忘记允许添加到您的AndroidManifest .xml文件:

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

我希望这将有助于。

+0

谢谢,它的工作 –

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