2016-02-11 4 views
0

Что случилось с моим кодом? Я успешно обрабатываю изображение, но второе действие не начинается. Я хочу передать свое взятое изображение во вторую активность.Передача изображения камеры в другую деятельность, ничего не происходит

public class MainActivity extends Activity { 

    private static final int CAMERA_REQUEST = 1888; 
    private Button buttonka; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     buttonka = (Button) findViewById(R.id.button); 
     { 
     buttonka.setOnClickListener(new View.OnClickListener() { 
      public void onClick (View v){ 
       switch (v.getId()) { 
        case R.id.button: 
         Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
         startActivityForResult(cameraIntent, CAMERA_REQUEST); 
         break; 
       } 
      } 
     }); 
    }} 

    protected void onActivityResult(int requestCode, int resultCode, Intent data, Uri mCapturedImageURI) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 
      Bitmap bitmapImage = (Bitmap) getIntent().getExtras().get("data"); 
      Intent camintent = new Intent(MainActivity.this, Main2Activity.class); 
      camintent.putExtra("bitmap", bitmapImage); 
      startActivity(camintent); 
     } 
    } 
} 

Receiver активность:

public class Main2Activity extends AppCompatActivity { 

    private ImageView image; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     getData(); 
    } 

    private void getData() { 

     Bitmap bitImage = getIntent().getParcelableExtra("bitmap"); 
     image.setImageBitmap(bitImage); 

    } 
} 

Как-то приложение не реагирует, а не начинать вторую деятельность, может я что-то пропустил? Надеюсь, кто-то может помочь, спасибо!

ответ

1

В вашем onActivityResult- используйте data.getExtras().get("data"), а не getIntent. Вы не хотите, чтобы намерение использовалось для запуска приложения, и вы хотите, чтобы он возвращался в результате.

+0

Bitmap bitmapImage = (Bitmap) data.getExtras ("data"); Намерение не может быть применено java.lang.String –

+0

Извините, забыли дополнительный get –

+0

Нет проблем, я ввел в действие код, который вы мне дали, но приложение все еще не работает должным образом, после того, как приложение вернет мне приложение активность, похоже, что onactivityresult как-то не начинается –

0

Я основал решение, забудьте добавить камеру и записать разрешение на хранение в файлах манифеста. Если у кого-то возникнут проблемы, убедитесь, что вы написали правильные разрешения! :) + удалены неиспользуемые Uri mCapturedImageURI)