Android 对话框在视图膨胀方面滞后

Android 对话框在视图膨胀方面滞后,android,android-dialog,Android,Android Dialog,我有一个带有14个旋转器的对话框。每个微调器上只设置一个适配器 在对话框上调用.show(),它会延迟,并在5秒或6秒后首次显示。下次我只需hide()和show()就可以了,这样它就可以完美地工作了。 这是麦克维 class HourDialog extends Dialog { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); r

我有一个带有14个旋转器的
对话框
。每个微调器上只设置一个
适配器

在对话框上调用
.show()
,它会延迟,并在5秒或6秒后首次显示。下次我只需
hide()
show()
就可以了,这样它就可以完美地工作了。 这是麦克维

class HourDialog extends Dialog {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.dialog_layout);
    setDateAdapter();
}

private void setDateAdapter() {
    ArrayAdapter adapterDate = new ArrayAdapter<>(c, R.layout.spinner_item, R.id.spinner_item_tv, c.getResources().getStringArray(R.array.hours_arrays));
    monSpinnerFrom.setAdapter(adapterDate);
    tueSpinnerFrom.setAdapter(adapterDate);
    wedSpinnerFrom.setAdapter(adapterDate);
    thusSpinnerFrom.setAdapter(adapterDate);
    friSpinnerFrom.setAdapter(adapterDate);
    satSpinnerFrom.setAdapter(adapterDate);
    sunSpinnerFrom.setAdapter(adapterDate);
    monSpinnerTo.setAdapter(adapterDate);
    tueSpinnerTo.setAdapter(adapterDate);
    wedSpinnerTo.setAdapter(adapterDate);
    thusSpinnerTo.setAdapter(adapterDate);
    friSpinnerTo.setAdapter(adapterDate);
    satSpinnerTo.setAdapter(adapterDate);
    sunSpinnerTo.setAdapter(adapterDate);
}
}
class HourDialog扩展对话框{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.dialog\u布局);
setDateAdapter();
}
私有void setDateAdapter(){
ArrayAdapterDate=新的ArrayAdapter(c,R.layout.spinner_项,R.id.spinner_项_tv,c.getResources().getStringArray(R.array.hours_数组));
monSpinnerFrom.setAdapter(adapterDate);
tueSpinnerFrom.setAdapter(adapterDate);
WedSpinnerrfrom.setAdapter(adapterDate);
thusSpinnerFrom.setAdapter(adapterDate);
friSpinnerFrom.setAdapter(adapterDate);
satSpinnerFrom.setAdapter(adapterDate);
sunSpinnerFrom.setAdapter(adapterDate);
monSpinnerTo.setAdapter(adapterDate);
tueSpinnerTo.setAdapter(adapterDate);
丝网喷丝头。设置适配器(适配器日期);
thusSpinnerTo.setAdapter(adapterDate);
Frispennerto.setAdapter(adapterDate);
satSpinnerTo.setAdapter(adapterDate);
sunSpinnerTo.setAdapter(adapterDate);
}
}
我想我应该想出一个更好的UI/UX来获取输入,除了14个微调器。但有没有可能解决这个问题?我目前正在
onCreate()
中设置适配器。我还尝试在
onShowListener
中设置适配器,但没有任何更改


我认为
对话框片段
将产生与
对话框
相同的效果。对话主题的活动可能是一个解决方案,但我还没有检查它

没有繁重的工作。只是UI的东西。为每个
微调器设置适配器。请查看代码。使用探查器检查导致此延迟的原因设置适配器导致延迟。我已经注释了
setDateAdapter()一切顺利。使用`setDateAdapter();`它的滞后时间太长,大约6秒。所以它很简单,不是吗?在
onCreate
中,使用asynctask设置适配器到底是什么?你知道你在说什么吗
runOnUiThread
将再次在UI上发布代码。所以它不会改变什么。FYI
runOnUiThread
活动的方法
而不是
对话框
。在这个
上下文中它也是无用的。如果您不知道解决方案,请不要做出假设。