2016-11-25 2 views
2

私は足を濡らしていますCodename One。私はXamarinPhoneGapIonicのような他の多くのオプションをクロスプラットフォーム用に検討しましたが、実際にコードを一度実行してどこでも実行すると、ちょっとCodename oneに夢中になりました。codenameone Pickerコンボボックスの代替

私は、UI要素を通過してきたと私はちょっとcombobox取り込む上でブロックされています

のは、私は値ペア(storeIdstoreName)として店舗を持っているとしましょう(代替Pickerがあります)。私はstoreNamePickerに表示したいが、値参照としてはstoreIdとしておきたい。 ストアが選択されたら、storeIdをAPI呼び出しに渡したいと思います。
これが可能です。これは非常に簡単な質問かもしれませんが、実装するのが少し難しいようです(私は本当にモバイルには初めてです)。

ありがとうございます。

答えて

1

私たちの推奨は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(); 

enter image description here

をおComboBoxを使う、という場合は、モデルを使用することができますあなたが望む任意のオブジェクトデータを与えます。次に、データを表示するセルレンダリングを作成します。これはすべてcomponent section of Codname One's developer guideで詳細に説明されています。 ComboBoxListに由来するので、多くのListのヒントとドキュメントがComboBoxに適用されます。

+0

速い応答のためにShaiありがとうございます。私は、コンボボックスが行く方法ではないと私はマルチボタンのアイデアが好きであることを認識します。私がまだわからないのは、選択したアイテムのIDを取得する方法だけです。 選択したアイテムの値を取得する方法があるはずです。私はそれを試してみましょう。 ありがとうございます。 – Ravimaran

+0

get/putClientProperty()を使用して、コンポーネントのメタデータを格納することができます。私の答えはこちらをご覧ください:http://stackoverflow.com/questions/40774454/codenameone-refresh-list-of-images-without-reloading-the-ページ –

+0

シャイありがとうございます。私はそれを試してみましょう。私はこれを本当に楽しみました。 – Ravimaran