Android MaterialDialog Spinner

时间:2015-04-11 11:57:58

标签: android android-spinner material-design android-dialog

我正在使用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();

由于

2 个答案:

答案 0 :(得分:2)

假设您拥有LinearLayout并且内部有Spinner

  • 自定义xml文件名为"dialogCustom"
  • 其中的
  • linearlayout ID为"linearLayoutMine"
  • {li>

    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建议的方法更好,只是实现结果的另一种方式。