У меня в классе есть что-то вроде этого:
public class Main extends Activity {
private static final int CAMERA_PICK = 1;
private static final int GALLERY_PICK = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button photo = (Button) findViewById(R.id.button);
photo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
createDialog();
}
});
private void createdialog(Activity activity) {
final CharSequence[] items = { "Take shot", "Take from gallery" };
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Get image");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
if (item == 0) {
takePhoto();
}
if (item == 1) {
choosePhoto();
}
}
});
AlertDialog alert = builder.create();
alert.show();
}
protected void choosePhoto() {
// not necessary;
}
protected void takePhoto() {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
mUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "myPic"
+ String.valueOf(System.currentTimeMillis()) + ".jpg"));
cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mUri);
try {
cameraIntent.putExtra("return-data", true);
startActivityForResult(cameraIntent, CAMERA_PICK);
//Doing something with the picture here;
}
} catch (Exception e) {
e.printStackTrace();
}
}
// TODO
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) {
case CAMERA_PICK:
break;
case RESULT_OK:
Toast.makeText(Main.this, "Photo selected", Toast.LENGTH_SHORT).show();
break;
}
}
}
Как вы можете видеть, я пытаюсь использовать камеру телефона, чтобы сделать снимок, а позже использовать его при просмотре изображений.Дело в том, что я не могу вызвать метод onActivityResult (...) !Когда я делаю startActivityForResult (cameraIntent, CAMERA_PICK);У меня нет способа манипулировать RESULT_OK, RESULT_CANCEL или даже тем, который я определил как CAMERA_PICK.OnActivityResult (...) должен работать на совершенство, потому что я не понимаю, что я делаю неправильно!
Любая помощь будет признательна, спасибо.
Я уженашел проблему.Я использовал группу действий, и я не понял, что вызванная onActivityResult () была первой из всех операций ...