Carregar agenda para um formulário

  • Respostas:2
Antonio Marão
  • Posts no fórum: 1

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();
}

}

Responder
Ciro F.
  • Posts no fórum: 2 056

20/05/2014, 13:17:20 via App

Terá que criar um APP, mas como não sei criar

Estou aqui para ajudar, duvidas só perguntar

Responder
Conta desativada
  • Posts no fórum: 1 344

20/05/2014, 14:44:13 via Web

Nao entendi muito bem o que vc quer fazer, e tbm nao to cm muito tempo pra olhar seu codigo kkkk mais vc precisa salvar com a extensão .APK pra roda no android

LG G2 D805 | ROM CLOUDY G3 V2.1

Responder