Pessoal meu problema é o seguinte, tenho meu baseAdapter … e tenho o seguinte problema , quando eu clica no campo edit ele aparece um alertDialogo, pedindo a quantidade com um botão “sim” e outro “não” … só que quando clico no OK , eu queria esse valor aparece no edit de traz … só que isso não acontece…
mais existe um problema para isso que é a minha real duvida, se eu executar o sistema , debugando ele … ele funciona do jeito que eu quero , só que se eu mandar rodar normal … não funciona 
alguem sabe me dizer o porque? 
código ‘BASEADAPTER’ :
package br.virtual.lista;
import java.text.DecimalFormat;
import java.util.List;
import br.virtual.principal.ActConstantes;
import br.virtual.principal.R;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
public class ActCardapioAdapter extends BaseAdapter
{
private final List<ActCardapioVO> cardapios;
private Context mContext;
private View textEntryView = null;
static class ViewHolder
{
public TextView descri, descridetalhada, valor, codigo;
public CheckBox chk;
public EditText edqtde;
public byte[] imgprod;
public ImageView imgproduto;
}
public ActCardapioAdapter(Context context, List<ActCardapioVO> cardapios)
{
this.cardapios = cardapios;
mContext = context;
}
public int getCount()
{
return cardapios.size();
}
public Object getItem(int position)
{
return cardapios.get(position);
}
public long getItemId(int position)
{
return cardapios.get(position).getCodigo();
}
public View getView(final int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.layout_produtos, null);
final ViewHolder holder = new ViewHolder();
//holder = new ViewHolder();
holder.codigo = (TextView)convertView.findViewById(R.id.txtCodigoProd);
holder.descri = (TextView)convertView.findViewById(R.id.txtNome);
holder.descridetalhada = (TextView)convertView.findViewById(R.id.txtDescricao);
holder.valor = (TextView)convertView.findViewById(R.id.txtPreco);
holder.chk = (CheckBox)convertView.findViewById(R.id.checkBox1);
holder.edqtde = (EditText)convertView.findViewById(R.id.edqtde);
holder.imgproduto = (ImageView)convertView.findViewById(R.id.imgProduto);
convertView.setTag(holder);
holder.chk.setTag(getItem(position));
holder.edqtde.setTag(getItem(position));
//formatando o campo preço.
DecimalFormat df = new DecimalFormat("#,###,##0.00");
//final ViewHolder holder = (ViewHolder) convertView.getTag();
final ActCardapioVO cardapio = cardapios.get(position);
holder.codigo.setText(String.valueOf(cardapio.Codigo));
holder.descri.setText(cardapio.getDescri());
holder.descridetalhada.setText(cardapio.getDescridetalhada());
holder.valor.setText(String.valueOf(df.format(Float.valueOf(cardapio.getValor()))));
if (cardapio.getImgprod() != null)
{
Bitmap bmp = BitmapFactory.decodeByteArray(cardapio.getImgprod(), 0, cardapio.getImgprod().length);
holder.imgproduto.setImageBitmap(bmp);
}
if(cardapio.getQuantidade() != 0)
{
holder.edqtde.setText(String.valueOf(cardapio.getQuantidade()));
}
holder.chk.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
CheckBox chk = (CheckBox) v;
chk.setTag(cardapio);
SQLiteDatabase db = mContext.openOrCreateDatabase(ActConstantes.NOME_BD,Context.MODE_PRIVATE,null);
if (chk.isChecked())
{
holder.edqtde.setText("0.5");
holder.edqtde.setEnabled(false);
String sql = "INSERT INTO PRESAIDA(CODIGO, DESCRI, QTDE) VALUES( " + cardapios.get(position).getCodigo() +
", '" + cardapios.get(position).getDescri() + "', 0.5);";
db.execSQL(sql);
}
else
{
holder.edqtde.setText("");
holder.edqtde.setEnabled(true);
String sql = "DELETE FROM PRESAIDA WHERE CODIGO = " + cardapios.get(position).getCodigo() ;
db.execSQL(sql);
}
db.close();
}
});
holder.edqtde.setOnFocusChangeListener(new View.OnFocusChangeListener()
{
public void onFocusChange(View v, boolean hasFocus)
{
if (!hasFocus == true)
{
if (holder.edqtde.getText().toString().equals(""))
{
if (textEntryView == null)
{
LayoutInflater factory = LayoutInflater.from(mContext);
textEntryView = factory.inflate(R.layout.dados, null);
final EditText edit1 = (EditText) textEntryView.findViewById(R.id.editQuantiComprada);
edit1.setText(holder.edqtde.getText().toString());
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setCancelable(false);
dialog.setTitle("Quantidade:");
dialog.setView(textEntryView);
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
if(!edit1.getText().toString().equals(""))
{
holder.edqtde.setText(edit1.getText().toString().trim());
if (holder.codigo.getText().toString().equals(String.valueOf(cardapios.get(position).getCodigo())))
{
SQLiteDatabase db = mContext.openOrCreateDatabase(ActConstantes.NOME_BD,Context.MODE_PRIVATE,null);
String sql = "SELECT * FROM PRODUTO WHERE CODIGO = " + cardapios.get(position).getCodigo();
if (!holder.edqtde.getText().equals(""))
{
sql = sql + " AND QTDE = " + holder.edqtde.getText();
}
Cursor c = db.rawQuery(sql, null);
c.moveToFirst();
if (!(c.getCount() > 0))
{
String sql1 = "UPDATE PRODUTO SET QTDE = " + holder.edqtde.getText() + " WHERE CODIGO = " + cardapios.get(position).getCodigo();
db.execSQL(sql1);
dialog.cancel();
}
c.close();
db.close();
}
}
dialog.cancel();
textEntryView = null;
}
});
dialog.setNegativeButton("Cancelar", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
dialog.cancel();
textEntryView = null;
}
});
dialog.create();
dialog.show();
}
}
}
else
{
if (!holder.edqtde.getText().toString().equals(""))
{
SQLiteDatabase db = mContext.openOrCreateDatabase(ActConstantes.NOME_BD,Context.MODE_PRIVATE,null);
String sql = "SELECT * FROM PRODUTO WHERE CODIGO = " + cardapios.get(position).getCodigo();
if (!holder.edqtde.getText().equals(""))
{
sql = sql + " AND QTDE = " + holder.edqtde.getText();
}
Cursor c = db.rawQuery(sql, null);
c.moveToFirst();
if (c.getCount() > 0)
{
if (textEntryView == null)
{
LayoutInflater factory = LayoutInflater.from(mContext);
textEntryView = factory.inflate(R.layout.dados, null);
final EditText edit1 = (EditText) textEntryView.findViewById(R.id.editQuantiComprada);
edit1.setText(holder.edqtde.getText().toString());
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setCancelable(false);
dialog.setTitle("Quantidade:");
dialog.setView(textEntryView);
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
if(edit1.getText().toString().equals(""))
{
holder.edqtde.setText(" ");
if (holder.codigo.getText().toString().equals(String.valueOf(cardapios.get(position).getCodigo())))
{
SQLiteDatabase db = mContext.openOrCreateDatabase(ActConstantes.NOME_BD,Context.MODE_PRIVATE,null);
String sql = "SELECT * FROM PRODUTO WHERE CODIGO = " + cardapios.get(position).getCodigo();
if (holder.edqtde.getText().equals(""))
{
sql = sql + " AND QTDE = " + holder.edqtde.getText();
}
Cursor c = db.rawQuery(sql, null);
c.moveToFirst();
if (c.getCount() > 0)
{
String sql1 = "UPDATE PRODUTO SET QTDE = NULL WHERE CODIGO = " + cardapios.get(position).getCodigo();
db.execSQL(sql1);
dialog.cancel();
}
c.close();
db.close();
}
}
else
{
holder.edqtde.setText(edit1.getText().toString().trim());
if (holder.codigo.getText().toString().equals(String.valueOf(cardapios.get(position).getCodigo())))
{
SQLiteDatabase db = mContext.openOrCreateDatabase(ActConstantes.NOME_BD,Context.MODE_PRIVATE,null);
String sql = "SELECT * FROM PRODUTO WHERE CODIGO = " + cardapios.get(position).getCodigo();
if (!holder.edqtde.getText().equals(""))
{
sql = sql + " AND QTDE = " + holder.edqtde.getText();
}
Cursor c = db.rawQuery(sql, null);
c.moveToFirst();
if (!(c.getCount() > 0))
{
String sql1 = "UPDATE PRODUTO SET QTDE = " + holder.edqtde.getText() + " WHERE CODIGO = " + cardapios.get(position).getCodigo();
db.execSQL(sql1);
}
c.close();
db.close();
}
}
dialog.cancel();
textEntryView = null;
}
});
dialog.setNegativeButton("Cancelar", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
dialog.cancel();
textEntryView = null;
}
});
dialog.create();
dialog.show();
}
}
}
}
}
});
return convertView;
}
}
código da Lista : que chama o baseAdapter … :
package br.virtual.lista;
import java.util.ArrayList;
import java.util.List;
import br.virtual.principal.ActConstantes;
import br.virtual.principal.R;
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ListView;
public class ActListaPrincipal extends ListActivity
{
public int codigo;
private List<ActCardapioVO> cardapio;
public Button btnfinalizar, btnlimpar, btnCancelar;
ListView lista;
CheckBox chk;
public void inicializaobjetos()
{
lista = (ListView)findViewById(android.R.id.list);
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
inicializaobjetos();
setTitle(ActConstantes.NOME_APP);
cardapio = new ArrayList<ActCardapioVO>();
//---------------------------------------------------------------------------------
//-------------- RECUPERANDO VALORES DO BUNDLE PASSADOS POR PARAMETROS ------------
//---------------------------------------------------------------------------------
Bundle bundle = getIntent().getExtras();
if (bundle != null)
{
codigo = this.getIntent().getIntExtra("codigo",0);
}
lista();
}
public final void lista()
{
SQLiteDatabase db = openOrCreateDatabase(ActConstantes.NOME_BD,Context.MODE_PRIVATE,null);
String sql = "SELECT * FROM PRODUTO WHERE CODGRUPO = " + codigo;
Cursor c = db.rawQuery(sql, null);
c.moveToFirst();
while ( !c.isAfterLast())
{
cardapio.add(new ActCardapioVO(c.getInt(c.getColumnIndex("CODIGO")),
c.getString(c.getColumnIndex("DESCRI")),
c.getBlob(c.getColumnIndex("DESCRIDETALHADA")),
c.getFloat(c.getColumnIndex("AVISTA")),
c.getBlob(c.getColumnIndex("IMGPROD")),
c.getInt(c.getColumnIndex("QTDE")),
false));
c.moveToNext();
}
c.close();
if(db != null)
{
db.close();
}
BaseAdapter adpter = new ActCardapioAdapter(ActListaPrincipal.this, cardapio);
setListAdapter(adpter);
}
public final void obtemvalores()
{
}
}
alguem sabe o que pode ser?