ループでテーブルにTextFieldの配列を追加しました。追加されるTextFieldの数は、ユーザーが入力した値によって異なります。
TextFieldはテキスト "Player#"で初期化されます(#はループによって増分されます)。 フォーカスを当てているときに各テキストフィールドからこのテキストを削除したいときに、フォーカスを失ったときに何も入力されなければ元の文字列に戻ります。
私の問題は、TextFieldにアクセスしてFocusListenerのテキストを設定できることです。ここ
は私のコードは次のとおりです。(注:playernamesコードスニペットの外に定義されたテーブルである。)LibGDX:フォーカスのTextFieldのテキストを変更する
for(int i=0; i<MainMenu.numplayers; i++) {
playername[i] = new TextField("Player " + (i+1), skin);
playernames.add(new Label("Player " + (i+1) + ":", skin, "black")).padRight(5.0F).padBottom(5.0F);
playernames.add(playername[i]).width(125.0F).padBottom(5.0F);
playernames.row();
playername[i].addListener(new FocusListener() {
public void keyboardFocusChanged(FocusListener.FocusEvent event, Actor actor, boolean focused) {
if(focused == true) {
/** change text to "" */
}
else if(focused==false){
/** change text back to "Player #" if nothing was typed */
}
}
});
私はテキストを変更できるようにリスナー内のTextFieldにアクセスするにはどうすればよいですか?