如何在Blackberry应用程序中使用SQLite数据库中的数据填充列表?我可以查看列表,但是我只能看到一个项目,它是列表中我的数据库表中的最后一项。以下是代码:
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();
}
}
}
答案 0 :(得分:1)
试试这样: 首先声明为
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);
答案 1 :(得分:0)
我想您需要指定要在列表中显示的项目数 - 我的意思是来自db的数量 -