How do I change the image of each item on my list?

0

Iwanttochangetheimageofeachiteminmylist..howdoI?Thankyouforunderstanding,Ihavenotmuchexperience.Thankyou.MycodeBelow.

importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.LayoutInflater;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.EditText;importandroid.widget.ListView;importbr.gestaoBd.BancoDeDados.ProdutoDao;importbr.gestaoBd.Beans.ItemDoPedido;importbr.gestaoBd.Beans.Produto;importbr.gestaoBd.listaadapters.ProdutoAdapter;importjava.util.ArrayList;publicclassListProdutosextendsActivityimplementsAdapterView.OnItemLongClickListener,AdapterView.OnItemClickListener{ListViewlista;ArrayList<Produto>produtos;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.list_produtos);lista=(ListView)findViewById(R.id.listview);lista.setOnItemLongClickListener(this);lista.setOnItemClickListener(this);atualizar(null);}publicvoidatualizar(Viewview){ProdutoDaoproDao=newProdutoDao();produtos=proDao.getListagem("");
    lista.setAdapter(new ProdutoAdapter(getBaseContext(), produtos));
    setTitle("Lista de produtos(" + CadPedido.getTotal() + ")");
}

public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
    Intent cadProdutoIntent = new Intent(this, CadProdutos.class);
    cadProdutoIntent.putExtra("Produto", produtos.get(position));
    startActivity(cadProdutoIntent);
    return true;
}

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    final ItemDoPedido itemAdicionar = new ItemDoPedido();
    itemAdicionar.setProduto(produtos.get(position));
    itemAdicionar.setValorUnitario(produtos.get(position).getPrecoDeVenda());
    // get prompts.xml view
    LayoutInflater layoutInflater = LayoutInflater.from(ListProdutos.this);
    View promptView = layoutInflater.inflate(R.layout.input_qtdeitem, null);
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ListProdutos.this);
    alertDialogBuilder.setView(promptView);

    final EditText edQtdeAddItem = (EditText) promptView.findViewById(R.id.edQtdeAddItem);

    // setup a dialog window
    alertDialogBuilder.setCancelable(false)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    itemAdicionar.setQuantidade(Double.parseDouble(edQtdeAddItem.getText().toString()));
                    CadPedido.getItensDoPedido().add(itemAdicionar);
                    ListProdutos.this.atualizar(null);
                    Log.i("AULA", "Finalizou");
                }
            })
            .setNegativeButton("Cancel",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            //dialog.cancel();
                        }
                    });

    // create an alert dialog
    AlertDialog alert = alertDialogBuilder.create();
    alert.show();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, 0, 0, "Continuar");
    return super.onCreateOptionsMenu(menu);

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == 0) {
        Intent intent = new Intent();
        intent.setClass(ListProdutos.this,
                CadPedido.class);

        startActivity(intent);
    }
    return super.onOptionsItemSelected(item);
}

}

My Adapter:

   import android.content.Context;
   import android.view.LayoutInflater;
   import android.view.View;
   import android.view.ViewGroup;
   import android.widget.BaseAdapter;
   import android.widget.ImageView;
   import android.widget.TextView;
   import br.gestaoBd.Beans.Produto;
   import br.gestaoBd.R;
   import java.util.List;

   public class ProdutoAdapter extends BaseAdapter {

private Context context;
private List<Produto> produtos;


public ProdutoAdapter(Context context, List<Produto> produtos) {
    this.context = context;
    this.produtos = produtos;
}

public int getCount() {
    return produtos.size();
}

public Object getItem(int position) {
    return produtos.get(position);
}

public long getItemId(int position) {
    return produtos.get(position).getId();
}

public View getView(int position, View convertView, ViewGroup parent) {
    Produto produto = produtos.get(position);

    LayoutInflater layout = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View view = layout.inflate(R.layout.linhapro, null);

    //Log.i("AULA", "Montou:" + produto.getDescricao());
    //Log.e("ERRO", "Valor da variavel estava nullo!");

    ImageView imgImageView = (ImageView) view.findViewById(R.id.imageView1);
    imgImageView.setImageResource(R.drawable.sem_foto);

    TextView edDescricao = (TextView) view.findViewById(R.id.textView1);
    edDescricao.setText(produto.getDescricao());

    TextView edPreco = (TextView) view.findViewById(R.id.textView2);

    edPreco.setText(String.valueOf(produto.getPrecoDeVenda()));
    return view;
}
} 

I would strongly urge you to be very specific .. Thank you Colleagues!

    
asked by anonymous 04.01.2016 / 15:25

1 answer

1

First is to structure your Product , know what it has if it is name, price, image and etc ... Knowing this you build it with builders and get and set. And also know whether this image will be local or from a remote server . Example:

public class Produto{


public Produto(){}

private String nome;
private Float valor;
private String urlImagem; // ou caso local private int IdImagem;

metodos de get e set aqui...

}

Then in your ProductAdapter class in the getView method

    ImageView imgImageView = (ImageView) view.findViewById(R.id.imageView1);
imgImageView.setImageResource(produto.getIdFoto); //caso a imagem seja local (esse id é como se fosse isso: R.drawable.minhaImagem)

TextView edDescricao = (TextView) view.findViewById(R.id.textView1);
edDescricao.setText(produto.getDescricao());

TextView edPreco = (TextView) view.findViewById(R.id.textView2);
edPreco.setText(String.valueOf(produto.getPrecoDeVenda()));

Remembering when working with images on Android it is always good to take care of the memory of the user's cell because a lot of memory is allocated and the FATAL EXCEPTION error occurs: main java.lang.OutOfMemoryError. And more if it is Images of a server look for tutorials on the internet that there is enough case do and have doubts post here and someone will try to help you

    
04.01.2016 / 18:30