3
I have a listView
loaded with BD data on a screen, on another screen my app hits a photo and saves the path of the photo in BD, until then I could do normal, now how to put the image in the Imageview
of ListView
using the way saved in the comic book I don’t know how to do.
Activity of the List:
public class MainActivity extends AppCompatActivity {
private ListView lvPrincipal;
private LivroAdapter livroAdapter;
private List<Livro> lista;
private void getLivros() throws Exception {
LivroCRUD livroCRUD = new LivroCRUD(this);
//armazena os dados da busca em uma lista temporaria
List<Livro> tempLista = livroCRUD.buscarTodos();
// Cria a lista, caso ela não esteja criada
if (lista == null)
lista = new ArrayList<Livro>();
// Limpa a sua lista de livros e adiciona todos os registros da lista temporária
lista.clear();
lista.addAll(tempLista);
// Se o adapter for null, cria o adapter, se não notifica que seu dataset teve alteração
if (livroAdapter == null) {
livroAdapter = new LivroAdapter(this, lista);
lvPrincipal.setAdapter(livroAdapter);
} else {
livroAdapter.notifyDataSetChanged();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvPrincipal = (ListView) findViewById(R.id.lvPrincial);
try {
this.getLivros();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "Não foi possivel carregar a lista.", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onResume() {
super.onResume();
try {
this.getLivros();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "Não foi possivel carregar a lista.", Toast.LENGTH_SHORT).show();
}
}
public void chamaCadastro(View view) {
Intent intent = new Intent(this, AddUpdateActivity.class);
startActivity(intent);
}
public void chamaConsulta(View view) {
Intent intent = new Intent(this, ConsultaActivity.class);
startActivity(intent);
}
Registration activity:
public class AddUpdateActivity extends AppCompatActivity {
private Livro livro = new Livro();
private EditText edtTitulo;
private EditText edtAutor;
private EditText edtEditora;
private File file;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_update);
edtTitulo = (EditText) findViewById(R.id.edtTitulo);
edtAutor = (EditText) findViewById(R.id.edtAutor);
edtEditora = (EditText) findViewById(R.id.edtEditora);
Button btnAdicionar = (Button) findViewById(R.id.btnAdicionar);
}
}
//METODO CHAMADO PELO ONCLICK PARA ADICIONAR
public void adicionar(View view) {
livro.setTitulo(edtTitulo.getText().toString());
livro.setAutor(edtAutor.getText().toString());
livro.setEditora(edtEditora.getText().toString());
livro.setCaminhoImg(file.getPath().toString());
LivroCRUD livroCRUD = new LivroCRUD(this);
try {
livroCRUD.inserir(livro);
Toast.makeText(this, "Livro Salvo com sucesso!!!!", Toast.LENGTH_LONG).show();
finish();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "Não foi possivel salvar.....!!!!", Toast.LENGTH_LONG).show();
}
}
//METODO CHAMADO PELO ONCLICK DO IMAGEVIEW PARA BATER FOTO
public void tirarFoto(View view) {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
//espera o resultado
startActivityForResult(intent, 0);
}
//espera a resposta da atividade no nosso caso espera a foto do intent
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
Bundle bundle = data.getExtras();
if (bundle != null) {
Bitmap img = (Bitmap) bundle.get("data");
ImageView iv = (ImageView) findViewById(R.id.imagemCadastro);
iv.setImageBitmap(img);
//chgama o metodo e pega o URI da imagem
Uri uri = getImageUri(getApplicationContext(), img);
//chama o metodo e pega o URI da imagem
file = new File(geRealPath(uri));
Toast.makeText(this, "CAMINHO: " + file.getPath(), Toast.LENGTH_LONG).show();
}
}
}
private String geRealPath(Uri uri) {
Cursor cursor = getContentResolver().query(uri, null,null,null,null);
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
return cursor.getString(idx);
}
private Uri getImageUri(Context context, Bitmap img) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
img.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(context.getContentResolver(), img, "Title", null);
return Uri.parse(path);
}
Adapter:
public class LivroAdapter extends BaseAdapter {
private Context context;
private List<Livro> lista;
public LivroAdapter(Context context, List<Livro> lista) {
this.context = context;
this.lista = lista;
}
@Override
public int getCount() {
return lista.size();
}
@Override
public Object getItem(int arg0) {
return lista.get(arg0);
}
@Override
public long getItemId(int arg0) {
return lista.get(arg0).getId();
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Livro livro = lista.get(position);
final int auxPosition = position;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
final View layout = inflater.inflate(R.layout.item_lista, null);
TextView titulo = (TextView) layout.findViewById(R.id.tvTitulo);
titulo.setText(lista.get(position).getTitulo());
TextView autor = (TextView) layout.findViewById(R.id.tvAutor);
autor.setText(lista.get(position).getAutor());
TextView editora = (TextView) layout.findViewById(R.id.tvEditora);
editora.setText(lista.get(position).getEditora());
//BOTÃO ATUALIZAR
Button btnAtualizar = (Button) layout.findViewById(R.id.btnChamaAtualizar);
btnAtualizar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, AddUpdateActivity.class);
intent.putExtra("titulo", lista.get(auxPosition).getTitulo());
intent.putExtra("autor", lista.get(auxPosition).getAutor());
intent.putExtra("editora", lista.get(auxPosition).getEditora());
intent.putExtra("_id", lista.get(auxPosition).getId());
context.startActivity(intent);
}
});
//BOTAO DELETAR
Button btnDeletar = (Button) layout.findViewById(R.id.btnDeletar);
btnDeletar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LivroCRUD livroCRUD = new LivroCRUD(context);
try {
livroCRUD.deletar(lista.get(auxPosition));
layout.setVisibility(View.GONE);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(context, "Não foi possivel excluir!!!!!", Toast.LENGTH_SHORT).show();
}
}
});
return layout;
}