这个DialogFragment实现导致了
IllegalStateException("你不能设置Dialog的OnCancelListener或OnDismissListener")
.为什么?解?
public class OkCThreadDialog1 extends DialogFragment{
DialogInterface.OnCancelListener onCancelListener;
public OkCThreadDialog1(){
}
public static OkCThreadDialog1 newInstance(String title, String message) {
OkCThreadDialog1 frag = new OkCThreadDialog1();
Bundle args = new Bundle();
args.putString("title", title);
args.putString("message", message);
frag.setArguments(args);
return frag;
}
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder .setTitle(getArguments().getString("title"))
.setMessage(getArguments().getString("message"))
.setOnCancelListener(onCancelListener)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
getDialog().cancel();
}});
return builder.create();
} …Run Code Online (Sandbox Code Playgroud) 我有活动A,它有一个带自定义适配器的ListView.
自定义适配器(适用于每个列表视图项)具有一个调用自定义对话框的按钮.
在此对话框中正在执行一个操作,作为响应,我想调用活动A上的UI更新.
这是我对简历代码的活动:
@Override
public void onResume()
{
super.onResume();
setUI();
}
Run Code Online (Sandbox Code Playgroud)
但是当我打电话的时候
dialog.dismiss();
Run Code Online (Sandbox Code Playgroud)
该对话框关闭,而不调用Activity A OnResume方法benig.
我如何捕捉和更新活动ui?