2

さまざまなチュートリアルの助けを借りて、ローカル データベースからのレコードが入力されたリストビューを表示するカスタム ダイアログを作成することができました。クリックリスナーを設定し、返された位置にカーソルを設定するなどして、クリックされたリストビューアイテムでレコードを取得する方法を見つけました...今、私がやりたいことは、アイテムがクリックされたときにこのダイアログを閉じて、新しいリストビューを再設定するテーブルの名前として、このカーソルのコンテンツを含む新しいダイアログを自動的に開きます。アプリケーション構造に関してこれを行う最善の方法を誰かが知っているかどうか知りたいです。現在、次のようにアクティビティに表示するダイアログを呼び出しています。

public void onClick(View view) {
    switch(view.getId()) {
    case R.id.pickerbutton:
        showDialog(DIALOG_PICK_CATEGORY);
        break;
    }
}
protected Dialog onCreateDialog(int id) {
    dialog = null;
    switch(id) {
    case DIALOG_PICK_CATEGORY:
        CustomDialogList.Builder customBuilder = new
            CustomDialogList.Builder(SendCookieActivity.this);
        customBuilder.setTitle(R.string.category);
        dialog = customBuilder.create();

        break;
    }
    return dialog;
}

このダイアログが表示された後、ユーザーは CustomDialogList ダイアログからカテゴリを選択します。カテゴリが選択された後、このダイアログが閉じられ (または閉じられたように見え)、新しく入力された項目を含む同じダイアログが表示されるようにする方法を考えるのに苦労しています (または完全に新しいダイアログでもあります)。 . 誰かが戻るボタンを押すと、前のダイアログが表示されます。ファイル エクスプローラーと考えてください。ただし、深さは 2 レベルしかありません。アプリの他のすべてのものと一致するように外観をカスタマイズしたので、CustomDialogList を使い続けたいと思います。おそらく、コードのほかに、またはコードの代わりにこの問題を解決するのに役立つのは、このタイプの UI フローが以前にどのように実装されたかを示すいくつかの図と、いくつかの疑似コードです。

ありがとう。

4

2 に答える 2

1

カスタムダイアログが拡張されているDialog(またはそのサブクラスの1つ)と仮定します。あなたのActivity実装を持っていますDialogInterface.onDismissListener。次に、ダイアログを作成した後...

dialog = customBuilder.create();

...dialog.setOnDismissListener(this);表示する前に使用してください。

あなたActivityは実装する必要があります...

@Override
public void onDismiss(DialogInterface dialog) {
    // Identify which dialog was dismissed and do something
}
于 2011-12-30T00:43:56.987 に答える
0

過去にこれを行う必要があった場合、ダイアログのonCancelで新しいダイアログを開きます。

于 2011-12-30T00:37:57.907 に答える