2016-12-30 4 views
0

背景情報:私は現在、自分のゲーム用に拡張したDialogクラスで作業しています。このダイアログのコンテンツテーブルの中に、私はImageとTableの両方を持っています(ioTableと呼ぶことができます)。 ioTableの中には、ラベルとテキストフィールドの両方の組み合わせがあります。アイデアは、ダイアログが記入用の一種の形式になるということです。俳優を設定するにはボタンをクリックしてくださいLibGDX

次に、ダイアログのボタンテーブルの中に、「クリア」テキストボタン(clearButton)を含めたいとします。 clearButtonというアイデアは、TextFieldsに書き込まれたすべての値をioTableにクリアします。

私の質問:はですがclearButtonが押されたときにトリガするioTableのTextFieldのそれぞれにリスナーを追加することが可能です。いつものように、他の創造的な解決策は歓迎されていません。

答えて

1

あなただけのEventListenerに消去したいテーブルへの参照を与えることができる:

// Assuming getSkin() and ioTable are defined elsewhere and ioTable is final 
TextButton clearButton = new TextButton("Clear", getSkin()); 
clearButton.addListener(new EventListener() { 
    @Override 
    public boolean handle(Event event) { 
    for(Actor potentialField : table.getChildren()) { 
     if(potentialField instanceof TextField) { 
     ((TextField)potentialField).setText(""); 
     } 
    } 
    return true; 
    } 
}); 
// Add clearButton to your dialog 

あなた自身が複数のclearButtonsを作成する表示された場合、あなたは簡単にヘルパーメソッドでこれをラップするかTextButtonを拡張することができます。

+0

パーフェクト! instanceof演算子は完全に私を逃げた、ありがとう! –

関連する問題