I have a code that needs it to select the item by its position ... In case he is already selecting but he randomly selects.
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(final AdapterView<?> adapterView, final View view, final int position, long l) {
AlertDialog.Builder builder = new AlertDialog.Builder(BuscaActivity.this);
builder.setTitle("Deseja inserir na lista?");
builder.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
TextView codigointerno = (TextView) findViewById(R.id.codigointerno);
String interno = codigointerno.getText().toString();
TextView codigoean = (TextView) findViewById(R.id.codigo_ean);
String ean = codigoean.getText().toString();
ListaProduto produto = new ListaProduto();
produto.setCodigoproduto(interno);
produto.setCodigoean(ean);
produto.setUclogin(getSharedPreferences(PREFS_USER, Context.MODE_PRIVATE).getString("PrefUser", ""));
loadJsonLista(produto);
}
});
public class ListaAdapter extends ArrayAdapter<Produto> {
private Context context;
private List<Produto> values;
public ListaAdapter(Context context, List<Produto> values) {
super(context, R.layout.lista_item, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.lista_item, parent, false);
}
TextView interno = (TextView)row.findViewById(R.id.codigointerno);
TextView ean = (TextView) row.findViewById(R.id.codigo_ean);
TextView completa = (TextView) row.findViewById(R.id.descricao_completa);
TextView reduzida = (TextView) row.findViewById(R.id.descricao_reduzida);
Produto item = values.get(position);
String message_interno = item.getCodigointerno();
String message_ean = item.getCodigoean();
String message_completa = item.getDescricaocompleta();
String message_reduzida = item.getDescricaoreduzida();
interno.setText(message_interno);
ean.setText(message_ean);
completa.setText(message_completa);
reduzida.setText(message_reduzida);
return row;
}
}
public class ListaProduto implements Serializable {
private static final long serialVersionUID = -2161110911377686463L;
@SerializedName("uclogin")
String uclogin;
@SerializedName("codigoproduto")
String codigoproduto;
@SerializedName("codigoean")
String codigoean;
public String getUclogin() {
return uclogin;
}
public void setUclogin(String uclogin) {
this.uclogin = uclogin;
}
public String getCodigoproduto() {
return codigoproduto;
}
public void setCodigoproduto(String codigoproduto) {
this.codigoproduto = codigoproduto;
}
public String getCodigoean() {
return codigoean;
}
public void setCodigoean(String codigoean) {
this.codigoean = codigoean;
}
}
public class Produto {
public String codigointerno;
public String codigoean;
public String descricaocompleta;
private String descricaoreduzida;
private double precovenda;
private double precocusto;
private double estoque;
private double margem;
public String getCodigointerno() {
return codigointerno;
}
public void setCodigointerno(String codigointerno) {
this.codigointerno = codigointerno;
}
public String getCodigoean() {
return codigoean;
}
public void setCodigoean(String codigoean) {
this.codigoean = codigoean;
}
public String getDescricaocompleta() {
return descricaocompleta;
}
public void setDescricaocompleta(String descricaocompleta) {
this.descricaocompleta = descricaocompleta;
}
public String getDescricaoreduzida() {
return descricaoreduzida;
}
public void setDescricaoreduzida(String descricaoreduzida) {
this.descricaoreduzida = descricaoreduzida;
}
public double getPrecovenda() {
return precovenda;
}
public void setPrecovenda(double precovenda) {
this.precovenda = precovenda;
}
public double getPrecocusto() {
return precocusto;
}
public void setPrecocusto(double precocusto) {
this.precocusto = precocusto;
}
public double getEstoque() {
return estoque;
}
public void setEstoque(double estoque) {
this.estoque = estoque;
}
public double getMargem() {
return margem;
}
public void setMargem(double margem) {
this.margem = margem;
}
}
public void loadJsonLista(ListaProduto produto){
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("http://"+getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE).getString("PrefHost", "") +":8080/FazendaWebservice/webresources/fazenda/")
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
ListaProdutosClient client = retrofit.create(ListaProdutosClient.class);
Call<ListaProduto> call = client.reposForUser(produto);
call.enqueue(new Callback<ListaProduto>() {
@Override
public void onResponse(Call<ListaProduto> call, Response<ListaProduto> response) {
ListaProduto produtos = response.body();
Toast.makeText(getApplicationContext(), "Código: " + produtos.getCodigoproduto(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<ListaProduto> call, Throwable t) {
Toast.makeText(BuscaActivity.this, "Erro ao criar lista", Toast.LENGTH_SHORT).show();
}
});
}