这是我的功能
private void openCustomMenu() {
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.custom);
dialog.setTitle("Bus Stops");
LinearLayout layout = (LinearLayout) dialog.findViewById(R.id.custom);
layout.removeAllViews();
for (String name : StopNames){
CheckBox checkbox = new CheckBox(this);
checkbox.setText(name);
checkbox.setTextColor(getResources().getColor(R.color.white));
layout.addView(checkbox);
}
dialog.setContentView(R.layout.custom);
dialog.show();
}
这里是我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/custom">
</LinearLayout>
</ScrollView>
我想动态添加复选框,但是在调用函数时对话框不会显示。如果你知道是什么问题,请告诉我:)非常感谢你!
编辑:它实际显示但只有标题而没有复选框。
答案 0 :(得分:1)
你没有调用dialog.show()。你还应该删除第二个setContentView语句 - 它将覆盖你在循环中所做的一切。
除此之外,我并不真正关注你所做的事情 - 为什么要从XML中提取视图并从中删除所有内容? 你应该研究http://developer.android.com/reference/android/app/AlertDialog.Builder.html,特别是setMultiChoiceItems - 这是实现你需要的正确方法。
答案 1 :(得分:0)
您需要使用dialog.show()来完成代码,该对话框实际显示了对话框。
答案 2 :(得分:0)
唯一的问题是
dialog.setContentView(R.layout.custom);
dialog.show();
会发生什么,之前你所做的一切都被你为xml提供的R.layout.custom
所取代。里面什么都没有。
如果要验证,请在该xml中放置TextView
并检查
或
只需评论第二个setContentView
并运行您的代码。