Android的Dialog对话框去除点击消失效果
有这样一个效果要实现,列表类Dialog,当点击其中的item时,dialog会自动消失dismiss,现在需要它不消失,要怎么做呢?
首先看基本实现:
final AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
builder.setItems();
builder.create().show();
通过经验分析,我猜测这是用list来实现的。我们可以点击AlertDialog.Builder查看跟踪它的源码。
private final AlertController.AlertParams P;
可以看到AlertController
这个类是关键。但是IDE中不可见。我们去网上找找看它的源码。
Android example source code file (AlertController.java)
带着目的简单分析,可以看到如下源码,果然,它内部调用了dimiss方法。
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
mOnClickListener.onClick(dialog.mDialogInterface, position);
if (!mIsSingleChoice) {
dialog.mDialogInterface.dismiss();
}
}
});
那么,假如我们获取到这个listview然后重新设置下它的setOnItemClickListener
监听呢?
if (dialog.getListView() != null) {
dialog.getListView().setOnItemClickListener(null);
}
预期应该是可行的,好,编译查看效果,果然点击后不消失了。