Android MaterialDialog 微调器
Android MaterialDialog Spinner
我正在使用 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();
谢谢
假设你有 LinearLayout
并且里面有 Spinner
:
- 自定义
xml
文件名是"dialogCustom"
linearlayout
里面的id是"linearLayoutMine"
spinner
linearlayout
里面的 id 是 "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();
仅在按下正负按钮时回调。
另一种可能性是将 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 建议的方法更好,只是实现结果的方式不同。
我正在使用 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();
谢谢
假设你有 LinearLayout
并且里面有 Spinner
:
- 自定义
xml
文件名是"dialogCustom"
linearlayout
里面的id是"linearLayoutMine"
spinner
linearlayout
里面的 id 是"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();
仅在按下正负按钮时回调。
另一种可能性是将 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 建议的方法更好,只是实现结果的方式不同。