Заполнение списка с помощью sqlite db - PullRequest
1 голос
/ 12 декабря 2011

Как я могу заполнить список данными из базы данных SQLite в моем приложении Blackberry?Я могу просмотреть список, но я вижу только один элемент, который является последним элементом из моей таблицы базы данных в списке.Ниже приведен код:

import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;

import net.rim.device.api.database.Database;
import net.rim.device.api.database.DatabaseFactory;
import net.rim.device.api.database.Row;
import net.rim.device.api.database.Statement;
import net.rim.device.api.io.URI;

class ListFieldScreen extends MainScreen
{

  Database d;

    public ListFieldScreen() 
    {
      final ObjectListField list = new ObjectListField();
                try
                {

                   URI myURI=URI.create("file:///SDCard/Databases/MyTestDatabase.db");
                   d=DatabaseFactory.open(myURI);
                   Statement st=d.createStatement("SELECT eng FROM English");
                   st.prepare();
                   net.rim.device.api.database.Cursor c=st.getCursor();
                   Row r;

                   while(c.next())
                   {

                    r=c.getRow();
                    String w=r.getString(0);
                    String[] t={w};
                        list.set(t); 
                       add(list);                        
                   }


                   st.close();
                   d.close();
                   }
                     catch ( Exception e ) {         
          e.printStackTrace();
                      }                      


    }
    }

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Попробуй так: Сначала объявите как

public Vector tableVector;
public ObjectListField list;

и вызвать этот код ниже в отдельном методе;

 tableVector=new Vector();//Declare this before the method;
    try
    {
        //Uri creation
        Statement st=LoadingScreen.database.createStatement("YOUR Statement");          
        st.prepare();
        Cursor c = st.getCursor();

        Row r;           
        while(c.next()) 
        {

            r = c.getRow();                
            tableVector.addElement(r.getString(0));
        }
        st.execute();           
        st.close();         
    }
    catch(Exception e)
    {
        //Exception;
    }

После завершения этого метода; показать данные как ...

String ar[]=new String[tableVector.size];
for(int i=0;i<tableVector.size;i++)
{
    ar[i]=tableVector.elementAt(i).toString();
}
list.set(ar);
add(list);
0 голосов
/ 12 декабря 2011

Полагаю, вам нужно указать количество элементов, которые вы хотите отобразить в списке - я имею в виду число единиц из db -

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...