在充气tableRow时无法达到TextView参数

时间:2017-08-26 12:57:18

标签: java android android-inflate

我是Android开发人员的新手 目前我正在尝试使用我的数据填写TableLayout 数据部分工作得很好,但 TableRow 的TextView参数不会影响我的设计。

这是我的活动表:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/table"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="1">
    <include layout = "@layout/table_row"/>
    </TableLayout>
</ScrollView>

和我用来膨胀的TableRow XML

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FBFBFB">
    <TextView
        android:id="@+id/number"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:padding="2dp"
        android:layout_weight="0"
        android:textSize="16sp"/>
    <TextView
        android:id="@+id/school_name"
        android:textSize="16sp"
        android:background="@color/colorAccent"
        android:layout_weight="1"
        android:text="School Name"/>
    <TextView
        android:id="@+id/rating"
        android:textSize="16sp"
        android:padding="2dp"
        android:layout_weight="2"
        android:text="Rating"/>
</TableRow>

和Java代码:

public void fillTable () {
        TableLayout tableLayout = (TableLayout) findViewById(R.id.table);
        LayoutInflater inflater = LayoutInflater.from(this);
        for(int i = 0; i<schools.size(); i++){
           addRow(i, inflater, tableLayout);
        }

    }

    public void addRow(int num, LayoutInflater inflater, TableLayout parent) {
        TableRow tr = (TableRow) inflater.inflate(R.layout.table_row,parent,false);
        tr.setId(num + 1);
        TextView tv = tr.findViewById(R.id.number);
        tv.setText(String.valueOf(num+1));
        tv =  tr.findViewById(R.id.school_name);
        tv.setText(schools.get(num).schoolName);
        tv =  tr.findViewById(R.id.rating);
        tv.setText(String.valueOf(schools.get(num).score));;
        final int index = num ;
        tr.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, SchoolCard.class);
                intent.putExtra(SCHOOL_LINK,schools.get(index).schoolCardLink);
                startActivity(intent);
            }
        });
       parent.addView(tr);
    }

无法找到问题所在。

1 个答案:

答案 0 :(得分:0)

将TableRow放在Table选项卡中并运行。