我正在使用MaterialDialog.Builder来显示一个对话框。 我为我的对话框设置了customView。
在我的布局中,我有一个微调器,当我显示对话框时,我想从我的sqlite数据库中填充它。
回调功能仅在按下这些按钮时有效。是否有一个函数,我可以在对话框显示之前使用它并使用我设置的布局来附加微调器?
我的代码就像:
boolean wrapInScrollView = true;
new MaterialDialog.Builder(mContext)
.customView(layout, wrapInScrollView)
.autoDismiss(false)
.negativeText(R.string.text40)
.positiveText(buton)
.callback(new MaterialDialog.ButtonCallback() { ....})
.build()
.show();
由于
答案 0 :(得分:2)
假设您拥有LinearLayout
并且内部有Spinner
:
xml
文件名为"dialogCustom"
linearlayout
ID为"linearLayoutMine"
spinner
linearlayout
内的{是"mySpinner"
MaterialDialog.Builder md=new MaterialDialog.Builder(this);
LayoutInflater factory = LayoutInflater.from(this);
final View stdView = factory.inflate(R.layout.dialogCustom, null);
LinearLayout linearLayoutMine (LinearLayout) stdView.findViewById(R.id.linearLayoutMine);
Spinner spinner = (Spinner) linearLayoutMine.findViewById(R.id.mySpinner);
//Load items to spinner
md.title("myTitle")
.customView(linearLayoutMine, wrapInScrollView)
.autoDismiss(false)
.negativeText(R.string.text40)
.positiveText(buton)
.callback(new MaterialDialog.ButtonCallback() { ....})
.build()
.show();
回调仅适用于按下正按钮的情况。
答案 1 :(得分:1)
另一种可能性是分离build()和show()调用,并在build()之后使用getCustomView()。
喜欢这个
dlg = new MaterialDialog.Builder(mContext)
.customView(layout, wrapInScrollView)
.autoDismiss(false)
.negativeText(R.string.text40)
.positiveText(buton)
.callback(new MaterialDialog.ButtonCallback() { ....})
.build();
mySpinner = (Spinner)dlg.getCustomView.findViewById(R.id.mySpinner);
// do whatever you need to do with your spinner
// finally show the dialog
dlg.show();
这不一定比Jemshit建议的方法更好,只是实现结果的另一种方式。