溫馨提示×

android dialogfragment怎樣處理回調(diào)

小樊
81
2024-11-19 00:58:28
欄目: 編程語言

在Android中,DialogFragment允許你在一個對話框中處理回調(diào)。為了實現(xiàn)這個功能,你需要在DialogFragment中創(chuàng)建一個接口,并在宿主Activity中實現(xiàn)這個接口。下面是一個簡單的示例:

  1. 首先,在你的DialogFragment中創(chuàng)建一個接口:
public class MyDialogFragment extends DialogFragment {

    public interface OnDialogResultListener {
        void onResult(int requestCode, int resultCode, @Nullable Bundle data);
    }

    private OnDialogResultListener mListener;

    // ... 其他代碼
}
  1. 在你的DialogFragment中,當用戶點擊某個按鈕時,調(diào)用接口方法并傳遞結果:
public class MyDialogFragment extends DialogFragment {

    // ... 接口定義和其他代碼

    public void setOnDialogResultListener(OnDialogResultListener listener) {
        mListener = listener;
    }

    private void onPositiveButtonClick() {
        // 處理正按鈕點擊事件
        if (mListener != null) {
            mListener.onResult(REQUEST_CODE, RESULT_OK, null);
        }
        dismiss();
    }

    // ... 其他代碼
}
  1. 在你的宿主Activity中實現(xiàn)這個接口,并重寫onResult方法:
public class MainActivity extends AppCompatActivity implements MyDialogFragment.OnDialogResultListener {

    @Override
    public void onResult(int requestCode, int resultCode, @Nullable Bundle data) {
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
            // 處理回調(diào)結果
        }
    }

    // ... 其他代碼
}
  1. 當你在宿主Activity中顯示DialogFragment時,設置回調(diào)監(jiān)聽器:
MyDialogFragment dialogFragment = new MyDialogFragment();
dialogFragment.setOnDialogResultListener(this);
dialogFragment.show(getSupportFragmentManager(), "MyDialogFragment");

現(xiàn)在,當DialogFragment中的正按鈕被點擊時,onResult方法將在宿主Activity中被調(diào)用,你可以在這個方法中處理回調(diào)結果。

0