我有一个名为 CustomListAdapter 的适配器类,我是这样写的,所以在这里我遇到了一个问题类转换异常任何人都建议我
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = inflater.inflate(R.layout.myplace, null);
final ImageView ivCamera = (ImageView)convertView.findViewById(R.id.ivCamera);
ivCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder adb = new AlertDialog.Builder(v.getRootView().getContext());
adb.setTitle("Do u Want to Take Photo");
adb.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
count++;
String file = dir+count+".jpg";
File newfile = new File(file);
try {
newfile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Uri outputFileUri = Uri.fromFile(newfile);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
((Activity) context).startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
}
});
adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
adb.show();
}
});
}
我遇到类转换异常,请建议我如何解决此问题
在我的 Activity 中我调用这个方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
customListAdapter.onActivityResult(requestCode, resultCode, data);
Bitmap bp = (Bitmap) data.getExtras().get("data");
ivCamera.setImageBitmap(bp);
}
最佳答案
试试这个:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case TAKE_PHOTO_CODE:
if(resultCode == Activity.RESULT_OK) {
customListAdapter.onActivityResult(requestCode, resultCode, data);
Bitmap bp = (Bitmap) data.getExtras().get("data");
ivCamera.setImageBitmap(bp);
}
break;
}
}
关于java - 如何在android中的自定义适配器类中调用相机 Intent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29816112/