如何在自定义对话框中放置表格布局?

时间:2015-07-01 07:59:09

标签: android alertdialog

我正在创建一个带有自定义对话框的Android应用程序。在我放置的自定义对话框中放置了一个动态生成的表格布局。通过执行对话框显示一个带有对话框标题标题的空对话框,只是它没有在该对话框中显示任何表格布局,任何人都可以帮助我查看动态自定义对话框中的表布局 这是我的活动

alert_progress_dialog = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = (LayoutInflater)getActivity().getSystemService(getActivity().LAYOUT_INFLATER_SERVICE);
alert_progress_dialog.setTitle("MANUAL MODE : TESTING ");
View dialogview = inflater.inflate(R.layout.progressdialog, null);
alert_progress_dialog.setView(dialogview);
alert_progress_dialog.setMessage("This is a sample message");
table_dialog = (TableLayout)dialogview.findViewById(R.id.table_layout_1);

for (int i = 1; i <= 4; i++) {

    TableRow row = new TableRow(getActivity());
    row.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
            LayoutParams.WRAP_CONTENT));


    for (int j = 1; j <= 4; j++) 
    {
        TextView tv = new TextView(getActivity());
        tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        tv.setBackgroundResource(R.drawable.cell_shape);
        tv.setPadding(5, 5, 5, 5);
        tv.setText("R " + i + ", C" + j);
        row.addView(tv);
    }

    table_dialog.addView(row);
}
alert_progress_dialog.show();

这是我在对话框中调用的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TableLayout
        android:id="@+id/table_layout_1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="77dp" >
    </TableLayout>

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

这可以使用setView方法完成,其他解决方案是使用DialogFragment,覆盖onCreateView

编辑:int第一种方法你必须记住你不应该调用setMessage方法,否则它将覆盖你的自定义视图

编辑2:您可以在此developer page

中了解如何为AlertDialog设置自定义布局

答案 1 :(得分:0)

使用Dialog而不是AlertDialog,然后将setContentView与您的布局ID一起使用。