- Posts no fórum: 1
20/05/2014, 02:31:14 via Web
20/05/2014 02:31:14 via Web
Elaborei um formulário que faz o cadastro do usuário, endereço e telefone. Esse cadastro é feito direto no Banco de Dados. Tenho outro código que faz a pesquisa do nome do usuário na agenda. Estou querendo carregar o nome e o telefone da Agenda e cadastrar direto no formulário e logo após cadastrar no banco. Alguém pode ajudar?
Obrigado
Código do Formulário:
package br.livro.android.cap14.banco;
import android.app.Activity;
import android.app.AlertDialog;
import android.database.Cursor; // Classe que vai navegar entre os dados do Banco de Dados (criação de tabelas e etc.)
import android.database.sqlite.SQLiteDatabase; //Banco de dados propriamente dito (armazenas as informações no banco de dados)
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class aplicacabanco extends Activity {
EditText etNome, etEndereco, etTelefone;// Textos dos arquivos XML
Button btCadastro, btConsulta, btVoltar, btProxReg,btRegAnt, btMenuPrincipal, btGravar;
// Botões do arquivo XML
TextView tvNome, tvEndereco, tvTelefone;
SQLiteDatabase bancoDados = null; //Inicializando o Banco de Dados
int campoNome, campoEndereco, campoTelefone;
Cursor cursor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
abreouCriaBanco();
chamaMenuPrincipal();
}
public void abreouCriaBanco() { //Criação do Banco de Dados
try {
//Classe para abrir ou criar o banco de dados
String nomeBanco = "bancoEstoque"; //nome do banco
//Criar ou Abrir o Banco
bancoDados = openOrCreateDatabase(nomeBanco, MODE_WORLD_READABLE, null);
//Abrindo uma base de dados OopenOrCreateDatabase (automaticamente já vem com três opções (name, mode, factory).
//MODE_WORLD_READABLE - todas as aplicações poderam ler e acessar o arquivo.
String sql = "CREATE TABLE IF NOT EXISTS pessoas " //Comandos SQL para executar
+"(id INTEGER PRIMARY KEY, nome TEXT, endereco TEXT," // Criar a tabela de pessoas
+"telefone TEXT);";
bancoDados.execSQL(sql); //Método
//mensagemExibir("Mensagem", "Banco Criado!"
}
catch(Exception erro)
{
mensagemExibir("Erro Banco", "Erro ao abrir ou criar o banco: "+erro.getMessage());
//Mensagem de Erro caso não funcione!
}
}
public void fechaBanco()// Método para fechar o BANCO DE DADOS
{
try {
bancoDados.close(); //fechar o banco de dados
}
catch(Exception erro) {
mensagemExibir("Erro Banco", "Erro ao fechar o banco: "+erro.getMessage());
}
}
private boolean buscarDados() {// Buscar os dados no BANCO
try {
cursor = bancoDados.query("pessoas",
// Vai no banco de dados, query por pardrão aparece várias opções (tables, colums e outros);
new String [] {"nome","endereco","telefone"},
null,//selection,
null,//selectionArgs,
null,//groupBy (agrupar)
null,//having,
null,//Exemplo: order by nome
null); // Limite de registros retornados
//Verificar se possui informações dentro do Cursor
campoNome = cursor.getColumnIndex("nome"
campoEndereco = cursor.getColumnIndex("endereco"
campoTelefone = cursor.getColumnIndex("telefone"
int numeroRegistros = cursor.getCount();// Retorna o número de registros do Cursor
if (numeroRegistros != 0)// Se for diferente de 0, significa que possui registro
{
cursor.moveToFirst(); //posiciona no primeiro registro
return true;
}
else
return false;
}
catch(Exception erro) {//Mensagem de Erro
mensagemExibir("Erro Banco", "Erro buscar dados no banco: "+erro.getMessage());
return false;
}
}
public void insereRegistro() {// Gravar no Banco de Dados
try {
String sql="INSERT INTO pessoas (nome, endereco, telefone) values ('"
+etNome.getText().toString()+"','"//Converter o texto para String
+etEndereco.getText().toString()+"','"//Converter o texto para String
+etTelefone.getText().toString()+"')";//Converter o texto para String
bancoDados.execSQL(sql);
}
catch(Exception erro) {
mensagemExibir("Erro Banco", "Erro ao gravar dados no banco: "+erro.getMessage());
}
}
public void mensagemExibir(String titulo, String texto)
{
AlertDialog.Builder mensagem = new AlertDialog.Builder(aplicacabanco.this);
mensagem.setTitle(titulo);
mensagem.setMessage(texto);
mensagem.setNeutralButton("OK",null);
mensagem.show();
}
public void chamaMenuPrincipal() {// Chama a tela principal e os listeners
setContentView(R.layout.main);
fechaBanco();
inicializacaoObjetos();
listeners();
}
public void chamaCadastro() {// Chamar o Cadastro e inicializa os objetos
setContentView(R.layout.cadastro);
inicializacaoObjetos();
listeners();
etNome.requestFocus();
}
public void chamaConsulta(){// Chamar a Consulta e inicializa os objetos
if (buscarDados()) //é o mesmo que if (buscarDados() == true)
{
setContentView(R.layout.consulta);
inicializacaoObjetos();
listeners();
mostrarDados();
}
else
{
mensagemExibir("Aviso", "Registros não gravdos"
chamaMenuPrincipal();
return;
}
}
public void inicializacaoObjetos() {// Inicialização dos OJBETOS
try {
btCadastro = (Button) findViewById(R.id.btCadastro);
btConsulta = (Button) findViewById(R.id.btConsulta);
} catch (Exception erro) {}
try {
etNome = (EditText) findViewById(R.id.nome);
etEndereco = (EditText) findViewById(R.id.endereco);
etTelefone = (EditText) findViewById(R.id.telefone);
btGravar = (Button) findViewById(R.id.btGravar);
btMenuPrincipal = (Button) findViewById(R.id.btMenuPrincipal);
} catch (Exception erro) {}
try{
tvNome = (TextView) findViewById(R.id.nome);
tvTelefone = (TextView) findViewById(R.id.telefone);
tvEndereco = (TextView) findViewById(R.id.endereco);
btRegAnt = (Button) findViewById(R.id.btRegAnt);
btProxReg = (Button) findViewById(R.id.btProxReg);
btVoltar = (Button) findViewById(R.id.btVoltar);
} catch (Exception erro) {}
}
public void listeners() {
try{
btCadastro.setOnClickListener(new
View.OnClickListener() {
public void onClick(View arg0) {
abreouCriaBanco();
chamaCadastro();
}
});
btConsulta.setOnClickListener(new
View.OnClickListener() {
public void onClick(View arg0) {
abreouCriaBanco();
chamaConsulta();
}
});
} catch (Exception e){}
try{
btGravar.setOnClickListener(new //Botão Gravar
View.OnClickListener() {
public void onClick(View arg0) {
try {
insereRegistro();
mensagemExibir("Aviso Banco", "Dados gravados com sucesso "
etEndereco.setText(null);
etTelefone.setText(null);
etNome.setText(null);
etNome.requestFocus();
} catch (Exception erro) {
mensagemExibir("Erro no Banco", "Erro ao gravar dados no banco: "+erro.getMessage());
}
}
});
btMenuPrincipal.setOnClickListener(new
View.OnClickListener() {
public void onClick(View arg0) {
chamaMenuPrincipal();
}
});
} catch (Exception e){
}
try{
btVoltar.setOnClickListener(new
View.OnClickListener(){
public void onClick(View arg0){
cursor.close();
chamaMenuPrincipal();
}
});
btRegAnt.setOnClickListener(new
View.OnClickListener(){
public void onClick(View arg0){
mostrarRegistroAnterior();
}
});
btProxReg.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0){
mostrarProximoRegistro();
}
});
} catch (Exception e){ }
}
public void mostrarDados() {// Mostrar os dados do Banco de Dados através do Cursor
tvNome.setText(cursor.getString(campoNome));//Pode colocar as colunas, mas não ideal
tvEndereco.setText(cursor.getString(campoEndereco));
tvTelefone.setText(cursor.getString(campoTelefone));
}
public void mostrarRegistroAnterior()
{
try {
cursor.moveToPrevious();//Mostrar os registro Anterior
mostrarDados();
}
catch(Exception erro) {
mensagemExibir("Navegacao", "Você já está no primeiro registro"
}
}
public void mostrarProximoRegistro() {
try {
cursor.moveToNext();// Próximo Registro
mostrarDados();
}
catch(Exception erro) {
mensagemExibir("Informativo", "Não há mais registro cadastrados"
}
}
}
Código para Visualizar Contatos:
package br.livro.android.cap14.banco;
import android.app.Activity;
import android.app.AlertDialog;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
//Visualizar todos os contatos da Agenda (Trabalho)
public class VisualizarTodosContatos extends Activity implements OnClickListener {
private static final int SELECIONAR_CONTATO = 1;
private static final String CATEGORIA = "trablaho";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.visualizar_contatos);
Button button = (Button) findViewById(R.id.botaoOk);
button.setOnClickListener(this);
}
public void onClick(View view) {
Uri uri = Uri.parse("content://com.android.contacts/contacts/"
Intent it = new Intent(Intent.ACTION_PICK,uri);
startActivityForResult(it,SELECIONAR_CONTATO);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent it) {
if(it == null){
Toast.makeText(this, "Nenhum contato", Toast.LENGTH_SHORT).show();
return;
}
Uri uri = it.getData();
Toast.makeText(this, "Contato: " + uri, Toast.LENGTH_SHORT).show();
// Visualiação dos contatos
startActivity(new Intent(Intent.ACTION_VIEW,uri));
imprimirNome(it);
Cursor c = managedQuery(uri, null, null, null, null);
c.moveToNext();
String[] s = c.getColumnNames();
if(s != null){
for (int i = 0; i < s.length; i++) {
Log.i(CATEGORIA,String.valueOf(s[i]));
String valor = c.getString(c.getColumnIndexOrThrow(s[i]));
Log.i(CATEGORIA,valor!=null?valor:"?"
}
}
}
private void imprimirNome(Intent it) {
// Visualizar o Contato selecionado
Uri uri = it.getData();
Log.i(CATEGORIA,"Visualizando contato: " + uri);
// Busca o contato no banco de dados
Cursor c = managedQuery(uri, null, null, null, null);
c.moveToNext();
// Recupera o nome do contato
String[] s = c.getColumnNames();
if(s != null){
for (int i = 0; i < s.length; i++) {
Log.i(CATEGORIA,String.valueOf(s[i]));
String valor = c.getString(c.getColumnIndexOrThrow(s[i]));
Log.i(CATEGORIA,valor!=null?valor:"?"
}
}
int index = c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME);
String nome = c.getString(index);
Toast.makeText(this, "Nome: " + nome, Toast.LENGTH_SHORT).show();
}
}
Conteúdo editorial recomendado
Com o seu consentimento, o conteúdo externo é carregado aqui.
Ao clicar no botão acima, concorda que o conteúdo externo poderá ser-lhe exibido. Os dados pessoais podem ser transmitidos a fornecedores terceiros no processo. Pode encontrar mais informações sobre isto no nosso Política de Privacidade.