Pessoal, Um duvida, estou com problemas de gerar com o caminha da foto, eu consegui gerar o caminho da foto, quando eu clico no botão da foto. so que o problema é que no método onActivityResult() a minha variavel caminhoFoto vem como nulo, detalhe a minha variavel é global da classe FormularioActivity.. Alguem consegue me ajudar... Veja a classe abaixo:
package br.com.caelum.cadastro;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.File;
import br.com.caelum.cadastro.dao.AlunoDAO;
import br.com.caelum.cadastro.entidade.Aluno;
import br.com.caelum.cadastro.helper.FormularioHelper;
/**
* Created by Elton on 07/07/2015.
*/
public class FormularioActivity extends Activity {
private FormularioHelper helper;
private String caminhoFoto;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario);
helper = new FormularioHelper(this);
final Aluno alunoSelecionado = (Aluno) getIntent().getSerializableExtra("br.com.caelum.alunoSelecionado");
final Button botao = (Button) findViewById(R.id.btn_inserir);
if (alunoSelecionado != null) {
Toast.makeText(this, "Aluno: " + alunoSelecionado, Toast.LENGTH_SHORT).show();
helper.colocarAlunoNoFormulario(alunoSelecionado);
botao.setText("Alterar");
}
botao.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Aluno aluno = helper.convert();
AlunoDAO dao = new AlunoDAO(FormularioActivity.this);
if(alunoSelecionado != null){
aluno.setId(alunoSelecionado.getId());
dao.alterar(aluno);
} else {
dao.inserir(aluno);
}
dao.close();
Toast.makeText(FormularioActivity.this, "Foi Adicionado com Sucesso! ", Toast.LENGTH_LONG).show();
finish();
}
});
ImageView foto = helper.getFoto();
foto.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onClick(View v) {
caminhoFoto = getFilesDir() + "/" + System.currentTimeMillis() +".png";
Intent irParaCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
irParaCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(caminhoFoto)));
startActivityForResult(irParaCamera, 123);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 123){
if(resultCode == Activity.RESULT_OK){
helper.carregaImagem(caminhoFoto);
} else {
caminhoFoto = null;
}
}
}
}