Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

alphasil

AlertDialog ao verificar Cursor em Base de Dados

Recommended Posts

alphasil

Olá pessoal

boa noite,

Estou a implementar uma base de dados em android mas estou com um problema, quando ele me inicia uma atividade deveria abrir uma janela de diálogo já que a minha bd está vazia, mas não aparece nada, alguma ajuda se faz favor?

Classe basedados

package com.example.placereminder;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class baseDados {
// Para as variaveis da BD e tabela Categoria
public static final String id = "_id";
public static final String nome = "_nome";
public static final String descricao = "_descricao";
// public static final Image imagem;
// Para a bd
private static final String PlaceDB = "placedb";
// Para as tabelas da bd
private static final String PlaceCat = "placecat";
private static final int VersaoDB = 1;
// Instancia
private bdCon conexao;
private final Context mContext;
private SQLiteDatabase mBD;
private static class bdCon extends SQLiteOpenHelper {
 public bdCon(Context context) {
  super(context, PlaceDB, null, VersaoDB);
 }
 @Override
 public void onCreate(SQLiteDatabase db) {
  db.execSQL("CREATE TABLE " + PlaceCat + " (" + id
 + " INTEGER PRIMARY KEY AUTOINCREMENT, " + nome
 + " TEXT NOT NULL, " + descricao + " TEXT NOT NULL);");
 }
 @Override
 public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
  db.execSQL("DROP IF TABLE EXISTS " + PlaceDB);
  onCreate(db);
 }
}
// Construtor
public baseDados(Context c) {
 mContext = c;
}
public baseDados open() throws SQLException {
 conexao = new bdCon(mContext);
 mBD = conexao.getWritableDatabase();
 return this;
}
public void close(){
 conexao.close();
}
public long createEntry(String nome, String descricao) {
 ContentValues cv = new ContentValues();
 cv.put(nome, nome);
 cv.put(descricao, descricao);
 return mBD.insert(PlaceCat, null, cv);
}
public String getDados() {
 String [] columns = new String[] {id, nome, descricao};
 Cursor c = mBD.query(PlaceCat, columns, null, null, null, null, null);
 String dadosLidos = "";
 int linhaId = c.getColumnIndex(id);
 int linhaNome = c.getColumnIndex(nome);
 int linhaDes = c.getColumnIndex(descricao);

 for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext())
 {
  dadosLidos = dadosLidos + c.getString(linhaId)+ " " + c.getString(linhaNome) + " " + c.getString(linhaDes) + "/n";
 }
 return null;
}

public boolean checkTabela() {
 Cursor c = mBD.rawQuery("SELECT  * FROM " + PlaceCat, null);
 if (!(c.moveToFirst()) || c.getCount() ==0){
  return false;
 }
 return true;
}
}

A classe onde deveria funcionar

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class Categorias extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
 // TODO Auto-generated method stub
 super.onCreate(savedInstanceState);
 setContentView(R.layout.bdview);
}
@SuppressWarnings("deprecation")
public void entradaDados() {
 TextView infBD = (TextView) findViewById(R.id.infoBD);
 // Operaçoes da BD
 baseDados inf = new baseDados(this);
 inf.open();
 if (inf.checkTabela()) {
  AlertDialog alerta = new AlertDialog.Builder(Categorias.this).create();
  alerta.setTitle("Erro...");
  alerta.setMessage("Não existem registos na base de dados");
  alerta.setButton("Criar", new DialogInterface.onclickListener() {
   @Override
   public void onclick(DialogInterface arg0, int arg1) {
 Intent electIntent = new Intent();
 electIntent.setClass(Categorias.this, AdCat.class);
 startActivity(electIntent);
   }
  });
  alerta.setButton2("Sair", new DialogInterface.onclickListener() {
   @Override
   public void onclick(DialogInterface arg0, int arg1) {
 Intent electIntent = new Intent();
 electIntent.setClass(Categorias.this, Menu.class);
 startActivity(electIntent);
   }
  });
 } else {
  String dados = inf.getDados();
  infBD.setText(dados);
 }
 inf.close();
}
}

Já não sei por onde me virar

cumps

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.