【发布时间】:2015-10-07 12:08:57
【问题描述】:
用户可以单击 DialogFragment 的“取消”按钮或屏幕上的“确定”按钮或设备上的后退按钮。取消和确定按钮的代码工作正常。单击后退按钮时,目标是关闭(关闭)DialogFragement 并返回到上一个活动。我的后退按钮代码不起作用,请告知。
public class CreateSkycardFragment extends DialogFragment {
public CreateSkycardFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.skyfrag_layout, container, false);
getDialog().setTitle("Delete skycard");
// if the user clicks "Cancel" in the "Delete skycard" dialog.
Button btnCancel = (Button) rootView.findViewById(R.id.btnCancel);
btnCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(CardViewActivity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
getDialog().cancel();
}
});
// if the user clicks "OK" in the "Delete skycard" dialog.
Button btnOK = (Button) rootView.findViewById(R.id.btnOK);
btnOK.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
getActivity().finish();
}
});
// if the user presses the Back Button even with the "Delete skycard" dialog open.
// the below code is where I'm having trouble
.setOnBackPressListener(new OnBackPressListener() {
@Override
public void onBackPressed() {
dismiss();
getActivity().finish();
}
});
return rootView;
}
}
【问题讨论】:
标签: android back-button android-dialogfragment