Implementação em listview

Boa tarde pessoal,

Estou começando a mexer com banco de dados agora, e gostaria de entender um pouco melhor a parte de retorno de dados do banco para um listview ou spinner. O método InserirGrupo está funcionando corretamente,mas pelo que andei pesquisando, seria viável criar uma classe modelo das colunas do banco, até pelo fato de auxiliar na manutenção, e também tem a questão dos ArraysAdapters que são os responsáveis por pegar os dados do banco, certo?

Quem puder me auxliar com essa parte da consulta, agradeço. Abaixo o que eu já fiz:

Layout com um botão pra inserir dados no banco e com um listview pra listar o que está gravado no banco

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#000000">
  <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" /> 
  
</LinearLayout>

Essa é a classe do layout acima, Chamo o método SalvarCadastro() e funciona normalmente. Apenas o consultar que não estou conseguindo implementar


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;
	
	private static final String campos[] = {"Nome_Grupo","ID"};
	Intent it;
	EditText input;
	Button btnGroup;
	EditText txtNome;

	ListView listView;
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grupos);
        
    listView = (ListView) findViewById(R.id.listView1);    
    btnGroup    = (Button) findViewById(R.id.btn_addGroup);
    }
    
    @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   
        input = new EditText(this);  
        alert.setView(input);  
  
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {  
            public void onClick(DialogInterface dialog, int whichButton) {  
            	SalvarCadastro();
		//Consultar();
            	
 
            }  
        });  
  
        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {  
            public void onClick(DialogInterface dialog, int whichButton) { 
            //	Consultar();
                //Cancelado.  
            }  
        });  
  
        alert.show();      
    }  
    
    public void SalvarCadastro()    {  
        ContextoDados db = new ContextoDados(this);
        db.InserirGrupos(input.getText().toString());
        db.mensagem("Dados gravados") ;  
limpaCampos();      
}          

    public void Consultar(){      
ContextoDados db = new ContextoDados(this);
    db.ConsultaGrupos();
    
    
    
    
    }
public void limpaCampos() {  
        input.setText("");  
            
}     

public void btnGrupoListar_click(View v){
  
}

}

Classe do banco de dados. Essa classe tem o método InserirGrupos que está funcionando (ou pelo menos está aparecendo a mensagem de dados gravados, kkk). Porém estou com dúvidas com o método de ConsultarGrupos

ContextoDados.java

[code]package com.example.agenda;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteCursorDriver;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteQuery;
import android.util.Log;
import android.widget.CursorAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;

public class ContextoDados extends SQLiteOpenHelper {

private static final String NOME_BD = "Agenda";  


private static final int VERSAO_BD = 1;  

private static final String LOG_TAG = "Agenda";  

private final Context contexto;  

public ContextoDados(Context context) {  
    super(context, NOME_BD, null, VERSAO_BD);  
    this.contexto = context;  
}  

@Override  
public void onCreate(SQLiteDatabase db) {  
    String[] sql = contexto.getString(R.string.ContextoDados_onCreate)  
            .split("\n");  
    db.beginTransaction();  

    try {  
        // Cria a tabela e testa os dados  
        ExecutarComandosSQL(db, sql);  
        db.setTransactionSuccessful();
        
    } catch (SQLException e) {  
        Log.e("Erro ao criar as tabelas e testar os dados",e.toString());  
    } finally {  
        db.endTransaction();  
    }  
}  

@Override  
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
    Log.w(LOG_TAG, "Atualizando a base de dados da versao " + oldVersion  
            + " para " + newVersion  
            + ", que destruirá todos os dados antigos");  
    String[] sql = contexto.getString(R.string.ContextoDados_onUpgrade)  
            .split("\n");  
    db.beginTransaction();  

    try {  
        ExecutarComandosSQL(db, sql);  
        db.setTransactionSuccessful();  
    } catch (SQLException e) {  
        Log.e("Erro ao atualizar as tabelas e testar os dados",  
                e.toString());  
        throw e;  
    } finally {  
        db.endTransaction();  
    }  

    onCreate(db);  
}  

private void ExecutarComandosSQL(SQLiteDatabase db, String[] sql) {  
    for (String s : sql)  
        if (s.trim().length() > 0)  
            db.execSQL(s);  
}  

public String ConsultaGrupos() {  

ListView listview = (ListView) findViewById(R.id.listView1);
SQLiteDatabase bd = getReadableDatabase();

    Cursor c = bd.query("Grupos",new String[] { "Nome_Grupo"}, null, null, null, null, null);  

    if (c.getCount() > 0) {  
        c.moveToFirst();  
        
    // quero jogar o resultado da consulta na listview que coloquei no layout
        
    } else {  
        mensagem("Nome não cadastrado");  
    }  

    return dados;  
}  

  
private ListView findViewById(int listview1) {
	// TODO Auto-generated method stub
	return null;
}

  
public long InserirGrupos(String nome) {  
    SQLiteDatabase db = getReadableDatabase();  

    try {  
        ContentValues initialValues = new ContentValues();  
        initialValues.put("Nome_Grupo", 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();  
}  

public void mensagem2(int msg) {  
    Toast t = Toast.makeText(this.contexto, msg, Toast.LENGTH_LONG);  
    t.show();  
}  

} [/code]

Seu método consultaGrupos, não deveria saber que existe uma ListView, ele deve apenas retornar os dados em um List e voce usa ele para preencher o adapter.

Desculpe-me, não consegui compreender.