Android 动态表格布局

Android 动态表格布局,android,dynamic,dynamic-programming,tablelayout,android-tablelayout,Android,Dynamic,Dynamic Programming,Tablelayout,Android Tablelayout,我正在创建一个android应用程序,我必须在android应用程序中显示sqlite的内容 所以我决定在这里使用TableLayout,但这里的要点是sqlite数据库中的列和行不是预先决定的,所以我需要创建处理动态列和行的布局类型 所以这里我要做的是创建一个layoutssublayout.xml,cells.xml,mainlayout.xml sublayout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo

我正在创建一个android应用程序,我必须在android应用程序中显示sqlite的内容

所以我决定在这里使用TableLayout,但这里的要点是sqlite数据库中的列和行不是预先决定的,所以我需要创建处理动态列和行的布局类型

所以这里我要做的是创建一个layoutssublayout.xmlcells.xmlmainlayout.xml

sublayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/subLayout_" >
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<TextView
    android:id="@+id/cell_"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Cell" 
    android:textSize="25dp"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>

在这个布局中,我使用cells.xml动态添加单元格

cells.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/subLayout_" >
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<TextView
    android:id="@+id/cell_"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Cell" 
    android:textSize="25dp"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>

当我的一行准备就绪时,我只需将它添加到mainlayout.xml

mainlayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/subLayout_" >
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<TextView
    android:id="@+id/cell_"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Cell" 
    android:textSize="25dp"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>


但我在这里得到了一个空指针异常

这是我的班级代码

LinearLayout layout,subLayout_;

layout=(LinearLayout)findViewById(R.id.tableLayout_);
subLayout_=(LinearLayout)findViewById(R.id.subLayout_);

for (int i = 0; i < columns.length; i++) {
Log.e("Column name", ""+columns[i]);
View v=inflater.inflate(R.layout.cells, null);
TextView tv=(TextView)v.findViewById(R.id.cell_);
tv.setText(columns[i]);
subLayout_.addView(v);
}

layout.addView(subLayout_);
LinearLayout布局,子布局;
布局=(LinearLayout)findViewById(R.id.tableLayout);
子布局=(线性布局)findViewById(R.id.subLayout);
for(int i=0;i
请帮帮我,我做错了什么?

试试这个

layout = (LinearLayout) findViewById(R.id.tableLayout_);
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View vi = inflater.inflate(R.layout.sublayout, null);

    subLayout_ = (LinearLayout) vi.findViewById(R.id.subLayout_);


    for (int i = 0; i < columns.length; i++) {
        Log.e("Column name", "" + columns[i]);
        ViewGroup v = (ViewGroup) inflater.inflate(R.layout.cells, null);
        TextView tv = (TextView) v.findViewById(R.id.cell_);
        tv.setText(columns[i]);
        subLayout_.addView(v);
    }

    layout.addView(subLayout_);
layout=(LinearLayout)findviewbyd(R.id.tableLayout_);
LayoutFlater充气器=(LayoutFlater)getSystemService(Context.LAYOUT\u充气器\u服务);
视图vi=充气机充气(R.layout.sublayout,空);
子布局=(线性布局)vi.findViewById(R.id.subLayout);
for(int i=0;i
您可以在这里尝试这种方法

按如下方式设计xml:

<TableLayout>
  <Tablerow>
    <Add your views here dynamically>
  </TableRow>
</TableLayout>

动态创建TextView并继续将其添加到TableRow,最后将TableRow添加到TableLayout