Você está na página 1de 6

Programação de Aplicativos Mobile (PAM)

Prof. Maicon Monttozo


3º ETIM Desenvolvimento de Sistemas

Inserção no SQLite

Após a criação da nossa tabela, vamos realizar a inserção de valores na


mesma. Para isso vamos precisar desenhar uma tela para que o usuário digite o nome
do produto e o valor dele. A tela ficará conforme a imagem a seguir.

Após o desenho da tela, fazemos a declaração e vinculação dos objetos, e


o evento clique do botão. Vamos fazer a declaração dos objetos acima do método
onCreate e as vinculações colocar logo abaixo de fechar a conexão da criação da
nossa tabela da aula anterior.

1
Programação de Aplicativos Mobile (PAM)
Prof. Maicon Monttozo
3º ETIM Desenvolvimento de Sistemas

// Declaração dos objetos


EditText txtProdutoNome, txtProdutoValor;
Button btnSalvar, btnListar;

// Vinculação dos objetos


txtProdutoNome = (EditText) findViewById(R.id.txtProdutoNome);
txtProdutoValor = (EditText) findViewById(R.id.txtProdutoValor);
btnSalvar = (Button) findViewById(R.id.btnSalvarProduto);
btnListar = (Button) findViewById(R.id.btnLista);

btnSalvar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

}
});

Dentro do evento clique do nosso botão, vamos declarar um objeto do tipo


ContentValues, para que ele armazene os dados que serão inclusos em nossa tabela.

// Declaração do objeto ContentValue


ContentValues contentValues = new ContentValues();

// Adicionar os campos e os valores no contentvalues

contentValues.put(Produto.ProdutoEntry.COLUMN_NAME_proNome,
txtProdutoNome.getText().toString());

contentValues.put(Produto.ProdutoEntry.COLUMN_NAME_proValor,
txtProdutoValor.getText().toString());

Agora vamos abrir a conexão com o nosso banco de dados para que
possamos realizar a inserção.

// Abre conexão com o banco


sqLiteDatabase = produtoDBHelper.getWritableDatabase();

O primeiro argumento de insert() é simplesmente o nome da tabela.

O segundo argumento diz ao framework o que fazer em casos em que os


ContentValues estão vazios (ou seja, você não entrou nenhum valor). Se você
especificar o nome de uma coluna, o framework incluirá uma linha e definirá o valor

2
Programação de Aplicativos Mobile (PAM)
Prof. Maicon Monttozo
3º ETIM Desenvolvimento de Sistemas

dessa coluna como nula. Se você especificar null, como nesse exemplo de código, o
framework não incluirá uma linha quando não houver valores.

Os métodos insert() retornam o código da linha recém-criada ou, caso haja


um erro ao inserir os dados, retornarão -1. Isso pode acontecer caso haja um conflito
com os dados preexistentes no banco de dados.

Ao chamar o método insert() vamos armazenar o seu retorno em uma


variável para depois informar o usuário se houve sucesso ou falha na inserção.

// Declaração de um objeto inteiro grande (long)


long resultado;

// Insere dados na database enviada por parametro


resultado = sqLiteDatabase.insert(Produto.ProdutoEntry.TABLE_NAME,
null,contentValues);

Após execução do insert, vamos fechar a conexão com o banco de dados


e analisar o conteúdo do variável resultado e verificar se houve erro na inserção.
Vamos exibir uma mensagem para o usuário do tipo Toast.

// Fecha conexão com o banco


sqLiteDatabase.close();

// Mostrando uma mensagem ao usuário sobre a inserção


if(resultado == -1)
Toast.makeText(MainActivity.this,
"Falha ao inserir",
Toast.LENGTH_LONG).show();
else
Toast.makeText(MainActivity.this,
"Inserido com sucesso",
Toast.LENGTH_LONG).show();

Agora vamos executar nossa aplicação. Abaixo está uma imagem da nossa
tela inserindo um produto e um valor, e em seguida exibindo a mensagem para o
usuário.

3
Programação de Aplicativos Mobile (PAM)
Prof. Maicon Monttozo
3º ETIM Desenvolvimento de Sistemas

O código completo do nosso MainActivity então fica da seguinte forma.

public class MainActivity extends AppCompatActivity


{

// Declaração do objeto SQLiteDatabase


SQLiteDatabase sqLiteDatabase;
// Declaração do objeto ProdutoDBHelper
ProdutoDBHelper produtoDBHelper;

// Declaração dos objetos


EditText txtProdutoNome, txtProdutoValor;
Button btnSalvar, btnListar;

4
Programação de Aplicativos Mobile (PAM)
Prof. Maicon Monttozo
3º ETIM Desenvolvimento de Sistemas

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

// Criar o banco de dados e tabelas


// Inicia um novo objeto produto
produtoDBHelper = new ProdutoDBHelper(this);
// Abre conexão com o banco
sqLiteDatabase =
produtoDBHelper.getWritableDatabase();
// Comando para criação da tabela
produtoDBHelper.onCreate(sqLiteDatabase);
// Fecha conexão com o banco
sqLiteDatabase.close();

// Vinculação dos objetos


txtProdutoNome = (EditText)
findViewById(R.id.txtProdutoNome);
txtProdutoValor = (EditText)
findViewById(R.id.txtProdutoValor);
btnSalvar = (Button)
findViewById(R.id.btnSalvarProduto);
btnListar = (Button) findViewById(R.id.btnLista);

btnSalvar.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View view) {

// Declaração do objeto ContentValue


ContentValues contentValues = new
ContentValues();
// Adicionar os campos e os valores no
contentvalues

contentValues.put(Produto.ProdutoEntry.COLUMN_NAME_proNome,tx
tProdutoNome.getText().toString());

contentValues.put(Produto.ProdutoEntry.COLUMN_NAME_proValor,t
xtProdutoValor.getText().toString());

5
Programação de Aplicativos Mobile (PAM)
Prof. Maicon Monttozo
3º ETIM Desenvolvimento de Sistemas

// Abre conexão com o banco


sqLiteDatabase =
produtoDBHelper.getWritableDatabase();

// Declaração de um objeto inteiro grande (long)


long resultado;

// Insere dados na database enviada por parametro


resultado =
sqLiteDatabase.insert(Produto.ProdutoEntry.TABLE_NAME,
null,contentValues);

// Fecha conexão com o banco


sqLiteDatabase.close();

// Mostrando uma mensagem ao usuário sobre a


inserção
if(resultado == -1)
Toast.makeText(MainActivity.this,
"Falha ao inserir",
Toast.LENGTH_LONG).show();
else
Toast.makeText(MainActivity.this,
"Inserido com sucesso",
Toast.LENGTH_LONG).show();

}
});

}
}

Você também pode gostar