Java android TableLayout动态添加行只添加最后一行

Java android TableLayout动态添加行只添加最后一行,java,android,user-interface,tablelayout,tablerow,Java,Android,User Interface,Tablelayout,Tablerow,读取StackOverflow上的数十个线程后。 我正在尝试向表布局动态添加行。 问题是,只有一行是动态添加的,并且它跨越了整个页面。 这是我的代码: package com.example.trashproject; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.View; import android.widget.TableLayout; impo

读取StackOverflow上的数十个线程后。 我正在尝试向表布局动态添加行。 问题是,只有一行是动态添加的,并且它跨越了整个页面。 这是我的代码:

package com.example.trashproject;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TableRow.LayoutParams;

public class MainActivity extends FragmentActivity{


    private static final int ROWS =2;
    private static final int COLS = 10;
    private static final String TAG = null;
    private TableLayout mTable;
    private View[][] mCircles;
    private boolean[][] mData;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        makeTable();

    }

    private void makeTable() {
        mTable = (TableLayout) findViewById(R.id.table);

        TableRow.LayoutParams rowParams = new TableRow.LayoutParams();
        rowParams.width = LayoutParams.WRAP_CONTENT;
        rowParams.height = LayoutParams.WRAP_CONTENT;
        mCircles = new View[ROWS][COLS];
        TableRow row;
        for (int i = 0; i < ROWS; i++) {
            row = new TableRow(this);
            row.setLayoutParams(rowParams);
            for (int j = 0; j < COLS; j++) {
                mCircles[i][j] = new View(this);
                mCircles[i][j].setBackgroundResource(R.drawable.small_circle);
                row.addView(mCircles[i][j]);
            }
            mTable.addView(row);
        }
    }
package com.example.trashproject;
导入android.os.Bundle;
导入android.support.v4.app.FragmentActivity;
导入android.view.view;
导入android.widget.TableLayout;
导入android.widget.TableRow;
导入android.widget.TableRow.LayoutParams;
公共类MainActivity扩展了FragmentActivity{
私有静态最终整数行=2;
专用静态最终整数COLS=10;
私有静态最终字符串标记=null;
可移植的私人桌面布局;
私有视图[][]mCircles;
私有布尔值[][]mData;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
makeTable();
}
私有void makeTable(){
mTable=(TableLayout)findViewById(R.id.table);
TableRow.LayoutParams rowParams=新建TableRow.LayoutParams();
rowParams.width=LayoutParams.WRAP_内容;
rowParams.height=LayoutParams.WRAP_内容;
mCircles=新视图[行][COLS];
表行;
对于(int i=0;i
activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TableLayout
        android:id="@+id/table"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
    <TableRow >
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TEXT"/>
    </TableRow>
    <TableRow >
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TEXT"/>
    </TableRow>
    </TableLayout>

</LinearLayout>

日历\月份\网格.xml:

<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/view1"
    android:layout_width="wrap_content"
    android:layout_height="1dp"
    />

small_circle.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >
    <size android:width="15dp"
        android:height="1dp"/>
    <solid android:color="@android:color/holo_green_light"/>

</shape>

感谢您的帮助…

我认为是“视图”给了您一个问题。尝试用ImageView替换它(尝试一下),我认为它会起作用。如果您确实想要视图(不确定为什么),请将最小高度和最小宽度设置为10dp左右


有一次,我遇到了一个包含换行内容的空视图,它覆盖了整个页面。它正在将您的其余行从屏幕中挤出

不确定这是否会有帮助,但我会删除xml文件中的表行定义以用于该表。@Kristy welsh:我添加它只是为了检查是否只有dynmic添加的行不起作用……是的,您可以删除它o使用imageview。以编程方式创建图像视图,然后执行SetImageResourceCase或setImageSrc..无法记住确切的语法。您将获得相同的效果。尝试至少消除潜在的“视图”问题。我发现了,我没有设置视图布局参数。我以为我夸大了它。但我没有