>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Erro ao inserir dados no SQLite


Boa noite todos!

Estou seguindo o curso de android disponbilizado pela rlSystem, porém quando vou cadastrar um cliente ele não está inserindo os valores que são informados nos campos, conforme a imagem abaixo



Abaixo está o código que eu fiz. Não consegui notar o que pode estar errado. Agradeço a ajuda de todos.

Inserir.xml


xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nome" />

android:id="@+id/txtNomeCliente"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >




android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="E-mail" />

android:id="@+id/txtEmailCliente"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />

android:id="@+id/btnCadastrar"
android:onClick="CadastrarClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cadastrar" />





Inserir.java

package br.com.rlsystem.cadastro;

import android.os.Bundle;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class Inserir extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.inserir);
}


public void CadastrarClick(View v){
EditText txtNomeCliente = (EditText)findViewById(R.id.txtNomeCliente);
EditText txtEmailCliente = (EditText)findViewById(R.id.txtEmailCliente);

Toast.makeText(getBaseContext(), txtNomeCliente.getContext().toString(), Toast.LENGTH_SHORT).show();

if(txtNomeCliente.getText().toString().length() <= 0) {
txtNomeCliente.setError("Preenche o campo nome.");
txtNomeCliente.requestFocus();
} else if (txtEmailCliente.getText().toString().length() <= 0) {
txtEmailCliente.setError("Preencha o campo email.");
txtEmailCliente.requestFocus();
} else {
try {
SQLiteDatabase db = openOrCreateDatabase("cliente.db", Context.MODE_PRIVATE, null);

ContentValues ctv = new ContentValues();
ctv.put("nome",txtNomeCliente.getContext().toString());
ctv.put("email",txtEmailCliente.getContext().toString());

//Segundo parâmetro é relacionado aos campos que não serão passado valores
//neste caso o _id pois é um campo auto incremento
if (db.insert("clientes", "_id", ctv) > 0) {
Toast.makeText(getBaseContext(), txtNomeCliente.getContext().toString(), Toast.LENGTH_SHORT).show();
//Toast.makeText(getBaseContext(), "Sucesso ao cadastrar cliente.", Toast.LENGTH_SHORT).show();

} else {
Toast.makeText(getBaseContext(), "Erro ao cadastrar cliente.", Toast.LENGTH_SHORT).show();
}
} catch(Exception ex){
Toast.makeText(getBaseContext(), ex.getMessage(), Toast.LENGTH_SHORT).show();
}


}
}

}



3 Respostas


Vou tentar colocar o código do inserir.xml novamente porque aí em cima não ficou muito legal.

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

android:id="@ id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nome" />

android:id="@ id/txtNomeCliente"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >




android:id="@ id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="E-mail" />

android:id="@ id/txtEmailCliente"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />

android:id="@ id/btnCadastrar"
android:onClick="CadastrarClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cadastrar" />




Fabiano

O que ele está inserindo no lugar?




Desculpa, total desatenção minha, talvez por causa da minha inexperiência ainda.
coloquei .getContext ao invés de .getText, aí o resultado foi o que está na imagem que eu postei aí em cima.

errado


ctv.put("nome",txtNomeCliente.getContext().toString());


correto

ctv.put("nome",txtNomeCliente.getText().toString());