Ir para o conteúdo
  • 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

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.