2016-05-03 16 views
1

ArrayListからマルチボタンを作成しています。 "id"と "code"。私は、単に "コード"をUIに表示し、 "id"を隠したいのは、単にactionListenerに "id"が必要なためです。Codenameone、UIに表示せずにMultiButtonアイテムに値をバインドするにはどうすればいいですか?

私のアプローチ、私は[ "ID"] TextLine1 [ "コード"]表示し、TextLine2を非表示にする補正

のためのオープン

for(int x= 0; x < policies2.size(); x++) 
{ 
    final MultiButton mb = new MultiButton(); 
    Double policy_id = (Double)policies2.get(x).get("id"); 
    mb.setTextLine1((String) policies2.get(x).get("code")); 
    mb.setTextLine2(policies2.get(x).get("policy_id")+""); //how can i hide this/bind it to the Multi withou showing it on the UI. 
    mb.addActionListener(new ActionListener(){ 
    //use "id" here 
    //mb.getTextLine2() 
} 
} 

どのように私はせずに、 "ID" を使用することができますUI上に表示します

答えて

1

これを試してみてください:

final MultiButton mb = new MultiButton(); 
    final Double policy_id = (Double)policies2.get(x).get("id"); 
    mb.setTextLine1((String) policies2.get(x).get("code")); 
    //mb.setTextLine2(policies2.get(x).get("policy_id")+""); //how can i hide this/bind it to the Multi withou showing it on the UI. 
    mb.addActionListener(new ActionListener(){ 
    public void actiobPerformed(ActionEvent e){ 
     double id = policy_id.doubleValue(); 
     ... 
    } 
    } 
} 
+0

私はそれが私の答え、その実際には同じアプローチを確認してください解決しました。私はちょうど1分早くuよりでした: –

+0

あなたの特定のコードの詳細に精通していませんが、それは私がやったのと似ています。 MultiButtonにバインドする必要はありません。これはfinalをマークしてactionPerformed句でそれにアクセスするだけです – Chen

1

これは実際にはとても簡単でした。 私はちょうどfinalとしてaddActionListenerの内部クラスの外側のidを宣言しましたが、TextLine2に設定する必要はありませんでした。

final Double db = (Double)policies2.get(x).get("policy_id"); 
mb.addActionListener(new ActionListener(){ 
    System.out.println(db); 
} 
関連する問題