title: How to keep the listview position when a item value is changed?
body: <p>How to keep the listview position when a item value (edtQtde) is changed?</p>
  
  <p>Activity where the ListView is created:</p>
  
  <pre><code>        repositorioProdutos = new RepositorioProdutos(conn,this);
          repositorioPedidosProdutos = new RepositorioPedidosProdutos(conn);
  
          adpProdutos = repositorioProdutos.buscaProdutos(this);
  
          lstProdutos.setAdapter(adpProdutos);
          lstProdutos.setItemsCanFocus(true);
  </code></pre>
  
  <p>Method to find data in data base and put in a ArrayAdapter:</p>
  
  <pre><code>    public ArrayAdapter&lt;Produtos&gt; buscaProdutos(Context context)
  {
      ProdutosArrayAdapter adpProdutos = new ProdutosArrayAdapter(context, R.layout.item_produto);
  
      Cursor cursor = conn.query("PRODUTOS", null, null, null, null, null, null);
  
      if (cursor.getCount() &gt; 0)
      {
          cursor.moveToFirst();
          do
          {
              Produtos produtos = new Produtos();
              produtos.setCodigo(cursor.getInt(cursor.getColumnIndex("COD_PRODUTO")));
              produtos.setNome(cursor.getString(cursor.getColumnIndex("NOME")));
              produtos.setDesc(cursor.getString(cursor.getColumnIndex("DESCR")));
              produtos.setGrupo(cursor.getString(cursor.getColumnIndex("GRUPO")));
              produtos.setSubgrupo(cursor.getString(cursor.getColumnIndex("SUBGRUPO")));
              produtos.setMedida(cursor.getString(cursor.getColumnIndex("MEDIDA")));
         //     produtos.setQuantidade(cursor.getColumnIndex("QUANTIDADE"));
  
              adpProdutos.add(produtos);
              adpProdutos.notifyDataSetChanged();
  
          }while (cursor.moveToNext());
      }
      adpProdutos.notifyDataSetChanged();
      return adpProdutos;
  }
  </code></pre>
  
  <p>ArrayAdapter Class:</p>
  
  <pre><code>    public class ProdutosArrayAdapter extends ArrayAdapter&lt;Produtos&gt; {
  
  private int resource = 0;
  private LayoutInflater inflater;
  private Context context;
  
  public ProdutosArrayAdapter(Context context, int resource ) {
      super(context, resource);
      inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      this.resource = resource;
      this.context= context;
  }
  
  public View getView(final int position, View convertView, ViewGroup parent)
  {
      View view = null;
      ViewHolder viewHolder = null;
  
      if (convertView == null)
      {
          viewHolder = new ViewHolder();
          view = inflater.inflate(resource, parent, false);
          viewHolder.txtProduto = (TextView)view.findViewById(R.id.txtProduto);
          viewHolder.txtGrupo = (TextView)view.findViewById(R.id.txtGrupo);
          viewHolder.txtMedida = (TextView)view.findViewById(R.id.txtMedida);
          viewHolder.txtDescr = (TextView)view.findViewById(R.id.txtDescr);
          viewHolder.edtQtde = (EditText)view.findViewById(R.id.edtQtde);
  
          view.setTag(viewHolder);
  
          convertView = view;
      }
      else
      {
          viewHolder = (ViewHolder)convertView.getTag();
          view = convertView;
      }
  
      final Produtos produtos = getItem(position);
  
      viewHolder.txtProduto.setText(produtos.getNome());
      viewHolder.txtGrupo.setText(produtos.getGrupo());
      viewHolder.txtDescr.setText(produtos.getDesc());
      viewHolder.txtMedida.setText(produtos.getMedida());
      viewHolder.edtQtde.setText(Integer.toString(produtos.getQuantidade()));
  
      viewHolder.edtQtde.setOnFocusChangeListener(new View.OnFocusChangeListener() {
          public void onFocusChange(View v, boolean hasFocus) {
              if (!hasFocus) {
                  EditText et = (EditText) v.findViewById(R.id.edtQtde);
                  //  Toast.makeText(context, "Acho o item" + et.getText(), Toast.LENGTH_SHORT).show();
  
                  try {
                      if (!et.getText().toString().trim().equals("")) {
                          produtos.setQuantidade(Integer.parseInt(String.valueOf(et.getText())));
                      }
                  } catch (Exception ex) {
                      Toast.makeText(context, "Erro" + ex.getMessage(), Toast.LENGTH_SHORT).show();
  
                  }
              }
          }
      });
  
      return view;
  }
  static class ViewHolder
  {
      TextView txtCodigo;
      TextView txtProduto;
      TextView txtGrupo;
      TextView txtMedida;
      TextView txtDescr;
      EditText edtQtde;
  }
  }
  </code></pre>
  
  <p>I only nedd to keep a position in ListView when a item is changed.</p>