我可以将一个对象作为值从sqlite数据库加载到ObjectChoiceField
。我需要一个例子,我将数据库的值放入向量中,但下拉列表不接受这种类型的单个数组。
clase BaseData
public Vector verSectores(){
Vector v=new Vector();
try{
URI uri=URI.create("/SDCard/Databases/app/semana_calculadora.db");
sqliteDB= DatabaseFactory.open(uri);
Statement st= sqliteDB.createStatement("select Sector from sectores_app");
st.prepare();
Cursor c= st.getCursor();
Row r;
while (c.next()){
r=c.getRow();
Sectores s= new Sectores(r.getString(0));
v.addElement(s);
}
st.close();
sqliteDB.close();
}catch(Exception e){}
return v;
}
课程结果
public class Resultados extends MainScreen{
private Vector v;
public Resultados(Vector v) {
this.v = v;
for (int i = 0; i < v.size(); i++) {
Sectores s=(Sectores)v.elementAt(i);
//add(new LabelField(s.getName_sector()+ ""));
add(new SeparatorField());
}
}
因为我必须将向量的值传递给ObjectChoiceField?
课程屏幕
comboFormato = new ObjectChoiceField("Format:", ********, 0){
public void layout(int width, int height){
width=350;
super.layout(getWidth(), getHeight());
super.layout(width, height);
setExtent(width, super.getHeight());
}
public void paint(Graphics g) {
g.setColor(Color.RED);
super.paint(g);
}
};
答案 0 :(得分:0)
你不能使用Vector作为ObjectChoiceField的基础,但你可以使用一个Object数组,并且很容易将Vector转换为数组,例如使用Arrays类提供的工具或只是蛮力如下:
Sectores [] array = new Sectores [v.size()];
for ( int i = 0; i < array.length; i++ ) {
array[i] = (Sectores)v.elementAt(i);
}
现在您可以为ObjectChoiceField提供'array',但要注意ObjectChoiceField将为每个选项显示的文本,将是使用每个元素的toString()方法生成的String。