Pessoal, desculpe-me por qualquer erro meu, sou novo aqui no Forúm e novo com desenvolvimento android.
mais o que está acontecendo comigo é o seguinte, tenho um lista, e nessa lista tenho um edit text, (estou fazendo um cardapio de lanche), quando eu clico no edit ele sobe o teclado numérico só que dentro de alguns instantes ele perde o foco do edit e meu teclado se transforma em teclado com letras… isso é problema, a dias venho tentando solucionar esse problema e não consigo, tenho outro problema tambem, quando digito valor desejado dentro do campo, quando aperto para esconder o teclado… ele faz com o dado digitado seja inserido no edit inferior ou superior… ele muda de posoção. são minhas duas duvidas, alguem sabe como me ajudar? é meio urgente, estou colocando aqui o código do meu adapter, e o codigo do meu XML , e o que precisarem é só falar, se quizerem adc no msn tambem , fico o dia inteiro ON *
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.content.Context;
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;
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)
{
//View view = null;
if (convertView == null)
{
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.layout_produtos, null);
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));
}
else
{
//view = convertView;
((ViewHolder) convertView.getTag()).chk.setTag(cardapios.get(position));
((ViewHolder) convertView.getTag()).edqtde.setTag(cardapios.get(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);
}
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 (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 PRESAIDA WHERE CODIGO = " + cardapios.get(position).getCodigo() +
" AND QTDE = " + Integer.parseInt(holder.edqtde.getText().toString());
Cursor c = db.rawQuery(sql, null);
c.moveToFirst();
if (!(c.getCount() > 0))
{
String sql1 = "INSERT INTO PRESAIDA(CODIGO, DESCRI, QTDE) VALUES( " + cardapios.get(position).getCodigo() +
", '" + cardapios.get(position).getDescri() + "', " + Integer.parseInt(holder.edqtde.getText().toString()) + ");";
db.execSQL(sql1);
}
c.close();
db.close();
}
}
else
{
SQLiteDatabase db = mContext.openOrCreateDatabase(ActConstantes.NOME_BD,Context.MODE_PRIVATE,null);
String sql = "SELECT * FROM PRESAIDA WHERE CODIGO = " + cardapios.get(position).getCodigo();
Cursor c = db.rawQuery(sql, null);
c.moveToFirst();
if (c.getCount() > 0)
{
String sql1 = "DELETE FROM PRESAIDA WHERE CODIGO = " + cardapios.get(position).getCodigo();
db.execSQL(sql1);
}
c.close();
db.close();
}
}
}
});
return convertView;
}
}
XML layout_produto.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llPai"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/titulo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imgProduto"
android:layout_width="48dp"
android:layout_height="48dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/txtCodigo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cod.: "
android:textColor="#FFFFFF"
android:textSize="15sp" />
<TextView
android:id="@+id/txtCodigoProd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="[Codigo]"
android:textColor="#FFFFFF"
android:textSize="15sp" />
</LinearLayout>
<TextView
android:id="@+id/txtNome"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:lines="3"
android:text="[Nome do produto]"
android:textColor="#FFFFFF"
android:textSize="15sp"/>
</LinearLayout>
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="21dp"
android:text="@string/chkmeia" />
<TextView
android:id="@+id/txtQuantidade"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="@string/Quantidade"
android:textColor="#FFFFFF"
android:textSize="12sp" />
<EditText
android:id="@+id/edqtde"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:ems="10"
android:inputType="number|numberSigned" >
</EditText>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/titulo" >
<TextView
android:id="@+id/txtDescricao"
android:layout_width="0dip"
android:layout_height="50dp"
android:layout_marginLeft="50dp"
android:layout_weight="80"
android:lines="3"
android:text="[Descrição do produto]"
android:textColor="#FFFFFF"
android:textSize="10sp" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="R$:"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#00BFFF" />
<TextView
android:id="@+id/txtPreco"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="[Preco do produto]"
android:textColor="#00BFFF"
android:textSize="15sp" android:layout_marginRight="8dp"/>
</LinearLayout>
</RelativeLayout>