Android初学者对话框没有显示

时间:2014-05-21 16:40:58

标签: android xml

这是我的功能

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>

我想动态添加复选框,但是在调用函数时对话框不会显示。如果你知道是什么问题,请告诉我:)非常感谢你!

编辑:它实际显示但只有标题而没有复选框。

3 个答案:

答案 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并运行您的代码。