Está sim, nenhum erro.
Segue código.
package br.com.alura.agenda;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.File;
import br.com.alura.agenda.dao.AlunoDao;
import br.com.alura.agenda.modelo.Aluno;
public class FormularioActivity extends AppCompatActivity {
public static final int CODIGO_CAMERA = 567;
// instancia da classe FormularioHelper e o atributo helper.
private FormularioHelper helper;
private String caminhoFoto;
// Os campos do formulário são definidos no XML activity_formulario.xml
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario);
//Novo FormularioHelper, passando como parametro o this, que é uma referência para FormularioActivity.
helper = new FormularioHelper (this);
//Recuperando a Intent passada pelo ListaAlunosActivity.
Intent intent = getIntent();
Aluno aluno = (Aluno) intent.getSerializableExtra("aluno");
if (aluno != null){
helper.preencheFormulario(aluno);
}
//Referencia para o botão da foto.
Button botaoFoto = (Button) findViewById(R.id.formulario_botao_foto);
botaoFoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Intenção de ir para a Camera.
Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Determinando o caminho da Foto, salvando na pasta da aplicação.
caminhoFoto = getExternalFilesDir(null) +"/"+ System.currentTimeMillis() +".jpg";
// Criação do arquivo Foto
File arquivoFoto = new File(caminhoFoto);
// MediaStore.EXTRA_OUTPUT é a chave do caminho determinado por todos os aplicativos de foto.
intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoFoto));
startActivityForResult(intentCamera, CODIGO_CAMERA);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// abrir a foto tirada
if(requestCode == Activity.RESULT_OK){
if(requestCode == CODIGO_CAMERA){
//Referencia para ImageView(Foto)
helper.carregaImagem(caminhoFoto);
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_formulario, menu);
return super.onCreateOptionsMenu(menu);
}
// Método do menu salvar na parte superior do Formulário de inclusão de alunos.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.menu_formulario_ok:
Aluno aluno = helper.pegaAluno();
AlunoDao dao = new AlunoDao(this);
if(aluno.getId() != null){
dao.altera(aluno);
Toast.makeText(FormularioActivity.this, "Aluno " + aluno.getNome() + " Alterado!", Toast.LENGTH_SHORT).show();
}else{
Log.d("CREATE", "Vai inserir aluno");
dao.insere(aluno);
Log.d("CREATE", "Inseriu com sucesso");
Toast.makeText(FormularioActivity.this, "Aluno " + aluno.getNome() + " Salvo!", Toast.LENGTH_SHORT).show();
}
dao.close();
finish();
break;
}
return super.onOptionsItemSelected(item);
}
}