aca les dejo la clase que uso para dar de alta a un cliente nuevo
package com.example.sodacachito;
import java.util.Arrays;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class ABMNuevoCliente extends Activity {
int request_code;
EditText txvPridosclie;
EditText txvSegochclie;
EditText txvUltunoclie;
EditText txvRasociclie;
EditText txvDireccclie;
EditText txvCelulaclie;
EditText txvTelefoclie;
EditText txvE_mailclie;
EditText txvConivaclie;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.abmclientes);
}
public void clickbuscarcondivacliente (View vwbuscarcondivacliente) {
//ARMO EL INTENT PARA LLAMAR A LA OTRA PANTALLA
Intent vercondivacliente = new Intent();
vercondivacliente.setClass(this,FrmBuscarCondivaCliente.class);
startActivityForResult(vercondivacliente, request_code);
}
public void clickguardarnuevocliente (View view) {
int LnError = 0;
String LcRasociclie = "";
String LcDireccclie = "";
String LcCelulaclie = "";
String LcTelefoclie = "";
String LcE_mailclie = "";
String LcConivaclie = "";
String LcPridosclie = "";
String LcSegochclie = "";
String LcUltunoclie = "";
String LcNucuitclie = "--";
txvPridosclie = (EditText)findViewById(R.id.txfpridosclie);
txvSegochclie = (EditText)findViewById(R.id.txfsegochclie);
txvUltunoclie = (EditText)findViewById(R.id.txfultunoclie);
txvRasociclie = (EditText)findViewById(R.id.txfrasociclie);
txvDireccclie = (EditText)findViewById(R.id.txfdireccclie);
txvCelulaclie = (EditText)findViewById(R.id.txfcelulaclie);
txvTelefoclie = (EditText)findViewById(R.id.txftelefoclie);
txvE_mailclie = (EditText)findViewById(R.id.txfe_mailclie);
txvConivaclie = (EditText)findViewById(R.id.txfconivaclie);
LcRasociclie = txvRasociclie.getText().toString();
LcDireccclie = txvDireccclie.getText().toString();
LcCelulaclie = txvCelulaclie.getText().toString();
LcTelefoclie = txvTelefoclie.getText().toString();
LcE_mailclie = txvE_mailclie.getText().toString();
LcConivaclie = txvConivaclie.getText().toString();
LcPridosclie = txvPridosclie.getText().toString();
LcSegochclie = txvSegochclie.getText().toString();
LcUltunoclie = txvUltunoclie.getText().toString();
//completo con ceros los ocho dijitos del cuit
while(LcSegochclie.length()<8){
LcSegochclie = "0"+LcSegochclie;
}
//completo con ceros los dos dijitos del cuit
while(LcPridosclie.length()<2){
LcPridosclie = "0"+LcPridosclie;
}
//completo con ceros los dos dijitos del cuit
while(LcUltunoclie.length()<1){
LcUltunoclie = "0"+LcUltunoclie;
}
LcNucuitclie = LcPridosclie.toString() + "-" + LcSegochclie.toString() + "-" + LcUltunoclie.toString();
//pregunto si hay ingresado nombre o direccion
if(txvRasociclie.getText().toString().equals("") || txvDireccclie.getText().toString().equals("")){
LnError = 1;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("No ingreso Nombre o Dirección")
.setTitle("Atención")
.setCancelable(false)
.setPositiveButton("Aceptar",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}else{
// pregunta por condicion de iva y cuit
if(txvConivaclie.getText().toString().equals("RESPONSABLE INSCRIPTO") || txvConivaclie.getText().toString().equals("RESPONSABLE MONOTRIBUTO") || txvConivaclie.getText().toString().equals("EXENTO")){
if (LcNucuitclie.equals("--") || LcNucuitclie.length() < 13){
LnError = 1;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("No ingreso numero de CUIT o está incompleto")
.setTitle("Atención")
.setCancelable(false)
.setPositiveButton("Aceptar",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
}
if (LnError == 0){
ManejoBaseDatos admin = new ManejoBaseDatos(this);
SQLiteDatabase db = admin.getWritableDatabase();
if(db != null){
ContentValues valores = new ContentValues();
valores.put("RASOCICLIE", LcRasociclie);
valores.put("DIRECCCLIE", LcDireccclie);
valores.put("TELEFOCLIE", LcTelefoclie);
valores.put("CELULACLIE", LcCelulaclie);
valores.put("E_MAILCLIE", LcE_mailclie);
valores.put("CONIVACLIE", LcConivaclie);
valores.put("NUCUITCLIE", LcNucuitclie);
valores.put("COZONACLIE", 0);
valores.put("NOZONACLIE", " ");
valores.put("CBARRICLIE", 0);
valores.put("COLOCACLIE", 0);
valores.put("CPROVICLIE", 0);
valores.put("COCATECLIE", 0);
valores.put("NUEVO_CLIE", 1);
valores.put("CODCLIAGRU", 0);
valores.put("CONREMITO", 0);
Cursor numeros = null;
try {
//tomo los datos de la tabla repartos para grabar en gastos reparto
Cursor repartos1 = db.rawQuery("SELECT CODIZONA FROM repartos WHERE ACTIVO = 1", null);
repartos1.moveToFirst();
//tomo los datos de la tabla numeros para hacer el numero de la nueva venta
String columnas_numero[] = {"CLIENNUEVO"};
numeros = db.query("numeros", columnas_numero, null, null, null, null, null);
//ARMO NUMERO DE CLIENTE
numeros.moveToFirst();
//tomo el dato del numero de movil y del numero de la ultima venta
int LnNroclie = Integer.parseInt(numeros.getString(0).toString().trim());
//suma uno al numero anterior de venta
LnNroclie = LnNroclie + 1;
//String LnNroclieC = String.valueOf(LnNroclie);
//termino de completar conten values de cliente con el numero y la marca de nuevo cliente
valores.put("CODIGOCLIE", LnNroclie);
valores.put("ZONAREPA", repartos1.getString(0));
//arma contenT values para guardar el nuevo numero de cliente
ContentValues nro_cliente = new ContentValues();
nro_cliente.put("CLIENNUEVO", LnNroclie);
//guarda el numero de cliente
db.update("numeros", nro_cliente, null, null);
//guarda clientes
db.insert("clientes", null, valores); Log.v("db.insert", Arrays.toString(Thread.currentThread().getStackTrace()));
Toast.makeText(this, "Cliente guardado con exito", Toast.LENGTH_LONG).show();
txvRasociclie.setText("");
txvDireccclie.setText("");
txvCelulaclie.setText("");
txvTelefoclie.setText("");
txvE_mailclie.setText("");
txvConivaclie.setText("CONSUMIDOR FINAL");
txvPridosclie.setText("");
txvSegochclie.setText("");
txvUltunoclie.setText("");
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "No se pudo guadar cliente", Toast.LENGTH_LONG).show();
}
db.close();
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent vercondivacliente) {
if ((requestCode == request_code) && (resultCode == RESULT_OK)){
// instancio el objeto que se asocia a la caja de condicion de iva de la pantalla
txvConivaclie = (EditText) findViewById (R.id.txfconivaclie);
// le asigno a la caja de texto destino el valor de la variable
txvConivaclie.setText(vercondivacliente.getStringExtra("LcConivaclie"));
}
}
}
los registros duplicados no se dan siempre y se me esta haciendo dificil encontrar el problema ya que por el log no me salio ninguna vez una llamada del mismo insert. Gracias