0

オブジェクトを値としてObjectChoiceFieldsqlite データベースからロードできます。例が必要です。データベースの値をベクトルに取得しますが、ドロップダウン リストはこのタイプの単一配列を受け入れません。

class 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);
    }
};
4

1 に答える 1

0

Vector を ObjectChoiceField の基礎として使用することはできませんが、Object の配列を使用することはできます。たとえば、Arrays クラスによって提供される機能または単に総当たりを使用して、Vector を配列に変換するのは簡単です。次のように:

Sectores [] array = new Sectores [v.size()];
for ( int i = 0; i < array.length; i++ ) {
  array[i] = (Sectores)v.elementAt(i);
}

これで、ObjectChoiceField に「配列」を指定できますが、ObjectChoiceField が選択ごとに表示するテキストは、各要素の toString() メソッドを使用して生成された文字列になることに注意してください。

于 2013-11-07T21:26:35.527 に答える