ポップアップで使用されるUIフィールドから値を取得するには、変数をいくつかの変数に格納し、いくつかのゲッターメソッドを実装する必要があります。以下は、検索ボタンをクリックすると、ポップアップ画面に入力された検索キーをゲッター方式で取得する検索ポップアップ画面の例です。
ポップアップ実装:
class SearchDialog extends Dialog {
public static final int CANCEL = 1000;
public static final int SEARCH = 2000;
private static final String[] choices = { "Search", "Cancel" };
private static final int[] values = { SEARCH, CANCEL };
private EditField searchField = new EditField("Address: ", "", 50, EditField.EDITABLE);
private static Bitmap bmSearch = Bitmap.getBitmapResource("cmd_search.png");
private SeparatorField separatorField = new SeparatorField(USE_ALL_WIDTH);
public SearchDialog() {
super("Search Address", choices, values, SEARCH, bmSearch);
Manager delegate = getDelegate();
if (delegate instanceof DialogFieldManager) {
DialogFieldManager dfm = (DialogFieldManager) delegate;
Manager manager = dfm.getCustomManager();
if (manager != null) {
manager.insert(separatorField, 0);
manager.insert(new LabelField(), 1);
manager.insert(searchField, 2);
manager.insert(new LabelField(), 3);
}
}
}
public String getSearchKey() {
return (searchField == null) ? "" : searchField.getText();
}
}
ダイアログから値を取得する(検索キー):
SearchDialog seaerchDialog = new SearchDialog();
int ret = seaerchDialog.doModal();
if (SearchDialog.SEARCH == ret) {
// get the search key entered on search dialog
String key = seaerchDialog.getSearchKey();
}
else if (SearchDialog.CANCEL == ret) {
// do something..
}
ありがとう!それはOKです – Tama
申し訳ありませんが、私はそれを試したが、メイン画面をリフレッシュできないので、戻り値を得ることができません:( – Tama
"ポップアップから戻り値を取得する方法はわかりません。スニペットはポップアップ(ダイアログ)からデータを取得するのに役立ちますが、新しいデータで画面をリフレッシュする方が簡単です。リストの内容を新しい値で更新し、MainScreenのinvalidate()を呼び出します。挑戦し続ける :) – Rupak