【发布时间】:2017-05-17 15:01:33
【问题描述】:
我正在使用警报对话框显示带有微调器的视图以设置图表的周期和比例
但它没有包装我的内容,我尝试的所有 tuto 都失败了......
我的代码
LinearLayout vue = new LinearLayout(context);
vue.setOrientation(LinearLayout.VERTICAL);
vue.addView(diag.getView());
choixPeriode = (Spinner) vue.findViewById(R.id.spinner_periode);
choixEchelle = (Spinner) vue.findViewById(R.id.spinner_echelle);
if(choixEchelle == null)
choixEchelle = new Spinner(context);
final int oldPeriode = DiagramController.PeriodeToPos(this.periode);
final int oldEchelle = DiagramController.echelleToPos(this.echelle);
choixPeriode.setSelection(oldPeriode);
choixEchelle.setSelection(oldEchelle);
LinearLayout containerButton = new LinearLayout(context);
containerButton.setGravity(Gravity.CENTER);
final ImageView croix = ((ImageView) vue.findViewById(R.id.croix));
final Button ok = new Button(context);
ok.setText(R.string.valider);
final Button cancel = new Button(context);
cancel.setText(android.R.string.cancel);
containerButton.addView(ok);
containerButton.addView(cancel);
vue.addView(containerButton);
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
dialogBuilder.setView(vue);
final AlertDialog alertDialog = dialogBuilder.create();
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(alertDialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
alertDialog.getWindow().setAttributes(lp);
alertDialog.show();
croix.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
periode = DiagramController.posToPeriode(choixPeriode.getSelectedItemPosition());
echelle = DiagramController.posToEchelle(choixEchelle.getSelectedItemPosition());
changePeriode();
alertDialog.dismiss();
}
});
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
diag.getView() 返回带有标题、微调器和图表的 LinearLayout。
自定义对话框的结果
【问题讨论】:
-
我建议制作一个自定义对话框(也许你已经尝试过了)。如果你不知道怎么做,我会把代码贴给你。
-
我想过,但我不知道该怎么做。没有简单的解决方案?
-
很简单,我把代码发给你。给我一分钟。
标签: android layout android-alertdialog