1

リサイクラー ビューのフラグメント (A)があります。アイテムを押すと、DialogFragment (そのアイテムの詳細を含む) が表示されます。削除ボタンを押すと、アイテムが削除され、フラグメント A が表示されます (変更あり)。私の質問は、アイテムが削除されたことを通知する方法ですか? 元に戻すオプションのあるスナックバーを表示したいと思います。Googleで何も見つかりませんでした..

ありがとう

4

1 に答える 1

3

DialogFragment でインターフェイスを定義します。

public interface OnDeletedItem {
        void onDeletedItem(Item deletedItem);
    }

アクティビティにインターフェースを実装させ、

public class MainActivity
        extends AppCompatActivity
        implements DialogFragment.OnDeletedItem

    @Override
    public void onDeletedItem(Item deletedItem) {

            // get the Fragment A from fragment manager and notify it via public method to show a Snackbar with the Undo option as desired

FragmentA fragmentA = (FragmentA) getFragmentManager().findFragmentByTag("FragmentA");
fragmentA.showSnackbarForDeletedItem(deletedItem); // implement showSnackbarForDeletedItem or similar method in FragmentA
getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }

次に、DialogFragment で [削除] ボタンを押すと、次のようになります。

try {

     ((OnDeletedItem)getActivity()).onDeletedItem(deletedItem);

    } catch (ClassCastException cce) {}
于 2016-08-08T09:44:21.987 に答える