- ベストアンサー
【iアプリ】選択した項目に連動して表示するコンポーネントを変更したい
dojaをつかってiアプリを作りたいと思っている初心者です 実現したい内容は下記の通りです ======================================== [初期状態] panelにドロップダウンリスト(ListBox.CHOICE)を表示 [実現したい内容] 1.ドロップダウンリストから1つ選択する 2.その内容に紐づく内容をドロップダウンリストの下に アンカーテキストで表示する 3.再度ドロップダウンリストで他の項目を選択した場合、 今まで表示していたアンカーテキストをクリアし 新たに選択された内容に紐づく内容を ドロップダウンリストの下に表示する ======================================== 2.までは実現できたのですが、3.の処理を行うにあたって 2.の内容をクリアする方法がわかりません また、2.で表示する項目の件数は選択した項目により変わります またこのような制御はiアプリでは一般的ではないのでしょうか? ご存知の方がいらっしゃいましたら是非ともよろしくお願いいたします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
できますよ。 携帯開発で、iアプリ関係を過去にしていました。 親のComponentにある以下のメソッドで 非表示にすることが出来ますので 以下のようなルーチンになると思いますが Anchorのオブジェクトを再利用する事になりますかね。 ------------------------------ 1.文字列設定→表示(個数分ループ) ↓ 2.全て非表示 ------------------------------ setVisible(boolean b) コンポーネントを表示するかどうかを設定します。 ※Anchorは配列で用意する必要があります。 ループやカウンタは適宜作成してください。 AnchorButton[] anc = new AnchorButton()[10個なら10]; イベントリスナ内で↓ anc[前回表示分ループして].setVisible(false); //非表示 anc[個数分] = new AnchorButton("文字列"); ※一部、想像で記載しますので間違いがあればごめんなさい。
その他の回答 (1)
- planet_9_9
- ベストアンサー率68% (57/83)
Panelに一度追加したコンポーネントを削除することは出来なかったと思います。 試してはいませんが以下のような対処が考えられると思います。 1) ドロップダウンリストが確定するたびに新しいPanelを生成して表示する。 2) あらかじめ表示件数の最大数分のアンカーをPanelに追加しておいて、不要なアンカーは無効化しておく。
お礼
planet_9_9さん早速の回答ありがとうございます コンポーネントの削除は出来ないんですね 対処策を参考にして作ってみます 結果は改めて書き込みますね ありがとうございました
補足
教えていただいた方法で実現できました ありがとうございます!
お礼
SAKENOSAKAさん回答ありがとうございます 上記の方法で実現できました ありがとうございました