Ayudita a Rellenar dinamicamente un Array

3,278 views
Skip to first unread message

Manu

unread,
Sep 17, 2011, 12:17:43 PM9/17/11
to desarrollad...@googlegroups.com
a Ver si alguien me puede ayudar con esto quiero rellenar un Array con
las salidas de una base de datos pero no hay manera este es el Codigo.

El Codigo Accede a la Base de datos en los que hay 5 registros ok, solo
quiero a�adir dinamicamente cada registro a el Array para poder luego
asociarlo al ListView y poder mostrar la lista.


package com.souldeveloper.BaseDatosNombres;

import java.lang.reflect.Array;

import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class VerNombres extends ListActivity{
     String nombre;
     int[] num = {android.R.id.text1};
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         // TODO Auto-generated method stub
         super.onCreate(savedInstanceState);
         BaseDatos base = new BaseDatos(VerNombres.this, "nombres", null,1);
         SQLiteDatabase db = base.getWritableDatabase();
         Cursor c = db.rawQuery("SELECT * fROM nombres", null);
         if(c.moveToFirst()){
                 String[] nombres = new String[4];
                 int i=0;
                 do{
                     nombre = c.getString(1);
                     nombres[i]= nombre;
                     c.moveToNext();
                     i++;
                 }while(c.moveToNext());

                 setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, nombres));
         }


     }
     @Override
     protected void onListItemClick(ListView l, View v, int position,
long id) {
         // TODO Auto-generated method stub
         super.onListItemClick(l, v, position, id);
         String nombre =
(String)getListAdapter().getItem(position).toString();
         Toast o = new Toast(VerNombres.this);
         o.makeText(VerNombres.this, nombre, Toast.LENGTH_LONG).show();
     }

}

Claudia Valdivieso

unread,
Sep 17, 2011, 3:17:44 PM9/17/11
to desarrollad...@googlegroups.com
Ahora lo envío en este!!

mira yo hice algo asi:

final ArrayList<String> lista = new ArrayList<String>();
bd = openOrCreateDatabase("agenda",SQLiteDatabase.OPEN_READONLY, null);
        bd.execSQL(crearTablaContacto); 
        
        Cursor c = bd.rawQuery(mostrarContactos, null);
        try{
         if(c!=null){
        
         int i = c.getColumnIndexOrThrow("nombre");
         //int j = c.getColumnIndexOrThrow("telefono");
            
            //Nos aseguramos de que existe al menos un registro
            while(c.moveToNext()){
             //Recorremos el cursor hasta que no haya más registros
             usuario = c.getString(i); 
                lista.add(usuario);
            }
         }
         else 
         Toast.makeText(getApplicationContext(), 
              "No hay nada :(", Toast.LENGTH_LONG).show();
        }
        catch (Exception e){
         Log.i("bdagenda", "Error al abrir o crear la base de datos" + e); 
        }
        
        if(bd!=null)
            bd.close();
                        
        ListAdapter adapter = new ArrayAdapter<String>(this,
                   android.R.layout.simple_list_item_single_choice, lista);
            
        lstMostrar.setAdapter(adapter);
              
        lstMostrar.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View a, int position,
long id) {
// TODO Auto-generated method stub
posicion = position;
lstMostrar.setItemChecked(position, true);
Toast.makeText(getApplicationContext(), 
              "Seleccionaste "+lista.get(position), Toast.LENGTH_LONG).show();
}


espero q te sirva Manu
--



Manu

unread,
Sep 17, 2011, 3:58:29 PM9/17/11
to desarrollad...@googlegroups.com
Muchiiiiisimas Gracias me estaba rompiendo la cabeza por no mirar otro tipo de Coleccion que no fuera el Array porque el metodo SetLisAdapter necesita un Array pero no cai en un ArrayList me a servido de Muuuuuucho enserio Si te pasas por Mallorca tienes una Paellita Asegurada (Toma nota).


El 17/09/11 21:17, Claudia Valdivieso escribió:
--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.

Raúl Do Santos

unread,
Sep 17, 2011, 12:31:13 PM9/17/11
to desarrollad...@googlegroups.com
proba así:


String[] nombres = new String[4];
int i=0;
if(c.moveToFirst()){

   do{
    nombre = c.getString(1);
    nombres[i]= nombre;
    i++;
    }while(c.moveToNext());

 }

setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, nombres, nombres));
        



--

manuel Muñoz Mir

unread,
Sep 18, 2011, 3:45:45 AM9/18/11
to desarrollad...@googlegroups.com
Ya lo solucione con la Opcion de ArrayList me parece perfecta.

Claudia Valdivieso

unread,
Sep 18, 2011, 11:50:12 AM9/18/11
to desarrollad...@googlegroups.com
@Manu --> jajaja..bueno eh!! te tomo la palabra ^^

--



Reply all
Reply to author
Forward
0 new messages