Pessoal,
Estou tentando gravar a informação de um alertDialog no Banco de Dados, mas não estou conseguindo
package com.example.agenda;
BaseDAO.java
[code]import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
//Classe responsável pela criação do Banco de Dados e tabelas
public class BaseDAO extends SQLiteOpenHelper {
public static final String TBL_GRUPOS = “Grupos”;
public static final String GRUPOS_ID = “_id”;
public static final String GRUPOS_NOME = “nome”;
private static final String DATABASE_NAME = “agenda.db”;
private static final int DATABASE_VERSION = 1;
//private final Context context;
//Estrutura da tabela Agenda (sql statement)
private static final String CREATE_GRUPOS = "create table " +
TBL_GRUPOS + “( " + GRUPOS_ID + " integer primary key autoincrement, " +
GRUPOS_NOME + " text not null)”;
private Context contexto;
public BaseDAO(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
//Criação da tabela
database.execSQL(CREATE_GRUPOS);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//Caso seja necessário mudar a estrutura da tabela
//deverá primeiro excluir a tabela e depois recriá-la
db.execSQL("DROP TABLE IF EXISTS " + TBL_GRUPOS);
onCreate(db);
}
public long InserirGrupo(String nome) {
SQLiteDatabase db = getReadableDatabase();
try {
ContentValues initialValues = new ContentValues();
initialValues.put("nome", nome);
return db.insert("Grupos", null, initialValues);
} finally {
db.close();
}
}
public void mensagem(String msg) {
Toast t = Toast.makeText(this.contexto, msg, Toast.LENGTH_LONG);
t.show();
}
}[/code]
Grupos.java (está cheio de comentários porque tentei fazer de diversas formas. rsrs)
[code]package com.example.agenda;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.widget.SimpleCursorAdapter;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CursorAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
public class Grupos extends Activity {
public static final int Voltar = 0;
Intent it;
private SQLiteDatabase db;
private CursorAdapter dataSource;
BaseDAO helper;
private static final String campos[]={“nome”,"_id"};
Button btnGroup;
EditText txtNome;
ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grupos);
helper = new BaseDAO(this);
// db = helper.getReadableDatabase();
listView = (ListView) findViewById(R.id.listView1);
// txtNome = (EditText) findViewById(R.id.grupos);
btnGroup = (Button) findViewById(R.id.btn_addGroup);
// btnGroup.setOnClickListener(this);
}
// public void onClick(View v){
// Toast.makeText(this,“Testando”,Toast.LENGTH_SHORT).show();
//CadastrarGrupo();
//listar();
// limpaCampos(txtNome);
// Cursor grupos = db.query("Grupos",null,null,null,null,null,null);
// if (grupos.getCount()>0){
// Toast.makeText(this,grupos.getCount(),Toast.LENGTH_SHORT).show();
// dataSource = new SimpleCursorAdapter(this,R.layout.modelo_lista,grupos,campos,new int[]{R.id.tv1,R.id.tv2});
// listView.setAdapter(dataSource);
// }
public void CadastrarGrupo() {
// helper = new BaseDAO(this);
// db = helper.getReadableDatabase();
BaseDAO helper = new BaseDAO(this);
helper.InserirGrupo(txtNome.getText().toString());
helper.mensagem("Dados gravados") ;
}
public void listar(){
// ContextoDados b = new ContextoDados(this);
Cursor grupos = db.query("Grupos",campos,null,null,null,null,null);
if (grupos.getCount()>0){
//dataSource = new SimpleCursorAdapter(this,R.layout.modelo_lista,grupos,campos,new int[]{R.id.tv1,R.id.tv2});
listView.setAdapter(dataSource);
} else {
Toast.makeText(this,"Nenhum registro encontrado",Toast.LENGTH_SHORT).show();
}
}
public void limpaCampos(EditText txtnome){
txtnome.setText("");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_grupos, menu);
menu.add(0,Voltar,0,"Voltar");
return true;
}
public boolean onMenuItemSelected(int featureId, MenuItem item){
switch (item.getItemId()) {
case Voltar:
it = new Intent(this,Inicial.class);
startActivity(it);
finish();
return true;
}
return false;
}
public void btnGrupo_click(View v)
{
//Cria o AlertDialog
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Grupo");
//alert.setMessage("Message");
//Cria uma caixa de texto para ser inserida dentro do AlertDialog
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
helper.InserirGrupo(input.getText().toString());
helper.mensagem("Dados Gravados");
// lsEstados.add(String.valueOf(input.getText()));
//adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//Cancelado.
}
});
alert.show();
}
}[/code]
activity_grupos.xml
[code]
<Button
android:id="@+id/btn_addGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Adicionar Grupo"
android:onClick="btnGrupo_click"
/>
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></ListView>
[/code]
No clique do botão Ok do AlertDialog estou chamando o banco de dados e o método inserir grupo, mas dá o erro force close e fecha minha aplicação.
o que será que eu errei?