>
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" />
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();
}
}
}
}
Vou tentar colocar o código do inserir.xml novamente porque aí em cima não ficou muito legal.
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nome" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="E-mail" />
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());
ctv.put("nome",txtNomeCliente.getText().toString());