0

だから私はdeveloper.android.comのコードを見ました彼らによると、これは物事が行われる方法です...

public class FireMissilesDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the Builder class for convenient dialog construction
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage(R.string.dialog_fire_missiles)
           .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   // FIRE ZE MISSILES!
               }
           })
           .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   // User cancelled the dialog
               }
           });
    // Create the AlertDialog object and return it
    return builder.create();
}
}

オプションメニューからアイテムがクリックされたときにこのクラスのオブジェクトが作成されるようにしたい...しかし、それを行う方法がわかりません???

4

2 に答える 2

2

あなたの質問を理解したら、ユーザーが「OK」をクリックしたときに別のクラスに伝える方法が必要です。一般的なアプローチは、独自のリスナーを作成することです。開発者ガイドには、この優れた例があります。


コール
バックを作成します。

public static class FragmentA extends ListFragment {
    ...
    // Container Activity must implement this interface
    public interface OnMyEventListener {
        public void onMyEvent();
    }
    ...
}

コールバックを設定します。

public static class FragmentA extends ListFragment {
    OnMyEventListener mListener;
    ...
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try {
            mListener = (OnMyEventListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement OnMyEventListener");
        }
    }
    ...
}

コールバックを呼び出します。

.setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {
         // FIRE ZE MISSILES!
         mListener.onMyEvent();
     }
})
于 2013-01-23T16:41:54.707 に答える