2017-04-25 67 views

回答

0

我想从AlertDialog中访问父活动的onClick()方法,但不希望因为我的AlertDialog保持一个活动引用的onClick()处理程序是在另一个文件。对于API 23和更新,这是对我工作:

在AlertDialog.Builder叫我加入这个活动:

dialog.setOwnerActivity(this); 
dialog.show(); 
..... 

然后我通过我的建设者到另一个类。因此,在其中实现DialogInterface.OnClickListener这个单独的类:

@Override 
    public void onClick(DialogInterface dialogInterface, int which) { 
     Dialog dialog = (Dialog) dialogInterface; 
     Activity activity = dialog.getOwnerActivity(); 
     // do some work with activity 
    } 
}; 

这将与所有DialogInterface听众的工作。

@petey致谢this answer指引我朝着正确的方向。

相关问题