私たちの推奨はavoid ComboBoxです。それは、iOS上にネイティブに存在せず、現代の携帯電話で外見を感じるUIパターンです。これはコードネーム1に存在します。このコードで
サンプルからあなたは、複雑なマルチフィールドコンボボックスと同様の効果を得ることができます上:
Form hi = new Form("Button", BoxLayout.y());
String[] characters = { "Tyrion Lannister", "Jaime Lannister", "Cersei Lannister"};
String[] actors = { "Peter Dinklage", "Nikolaj Coster-Waldau", "Lena Headey"};
int size = Display.getInstance().convertToPixels(7);
EncodedImage placeholder = EncodedImage.createFromImage(Image.createImage(size, size, 0xffcccccc), true);
Image[] pictures = {
URLImage.createToStorage(placeholder, "tyrion","http://i.lv3.hbo.com/assets/images/series/game-of-thrones/character/s5/tyrion-lannister-512x512.jpg"),
URLImage.createToStorage(placeholder, "jaime","http://i.lv3.hbo.com/assets/images/series/game-of-thrones/character/s5/jamie-lannister-512x512.jpg"),
URLImage.createToStorage(placeholder, "cersei","http://i.lv3.hbo.com/assets/images/series/game-of-thrones/character/s5/cersei-lannister-512x512.jpg")
};
MultiButton b = new MultiButton("Pick A Lanister...");
b.addActionListener(e -> {
Dialog d = new Dialog();
d.setLayout(BoxLayout.y());
d.getContentPane().setScrollableY(true);
for(int iter = 0 ; iter < characters.length ; iter++) {
MultiButton mb = new MultiButton(characters[iter]);
mb.setTextLine2(actors[iter]);
mb.setIcon(pictures[iter]);
d.add(mb);
mb.addActionListener(ee -> {
b.setTextLine1(mb.getTextLine1());
b.setTextLine2(mb.getTextLine2());
b.setIcon(mb.getIcon());
d.dispose();
b.revalidate();
});
}
d.showPopupDialog(b);
});
hi.add(b);
hi.show();
をおComboBox
を使う、という場合は、モデルを使用することができますあなたが望む任意のオブジェクトデータを与えます。次に、データを表示するセルレンダリングを作成します。これはすべてcomponent section of Codname One's developer guideで詳細に説明されています。 ComboBox
はList
に由来するので、多くのList
のヒントとドキュメントがComboBox
に適用されます。
速い応答のためにShaiありがとうございます。私は、コンボボックスが行く方法ではないと私はマルチボタンのアイデアが好きであることを認識します。私がまだわからないのは、選択したアイテムのIDを取得する方法だけです。 選択したアイテムの値を取得する方法があるはずです。私はそれを試してみましょう。 ありがとうございます。 – Ravimaran
get/putClientProperty()を使用して、コンポーネントのメタデータを格納することができます。私の答えはこちらをご覧ください:http://stackoverflow.com/questions/40774454/codenameone-refresh-list-of-images-without-reloading-the-ページ –
シャイありがとうございます。私はそれを試してみましょう。私はこれを本当に楽しみました。 – Ravimaran