Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 表格行数组-can';你不给它上下文吗?_Java_Android_Tablerow_Android Context_Timetable - Fatal编程技术网

Java 表格行数组-can';你不给它上下文吗?

Java 表格行数组-can';你不给它上下文吗?,java,android,tablerow,android-context,timetable,Java,Android,Tablerow,Android Context,Timetable,因此,对于我的代码,我试图用数据库中的数据填充时间表。对我来说,最好的办法是创建一个空白的时间表,然后再填写。我确切地知道我需要多少行,所以我使用一个TableRows数组,然后向每行添加一定数量的文本视图 但是,它在每次运行后都会崩溃。我认为这可能与tablerows没有上下文有关?这是所有相关的代码,如果有人能帮我,我将非常感激 public class Timetable123 extends Activity { TableRow[] row= new TableRow[36];

因此,对于我的代码,我试图用数据库中的数据填充时间表。对我来说,最好的办法是创建一个空白的时间表,然后再填写。我确切地知道我需要多少行,所以我使用一个TableRows数组,然后向每行添加一定数量的文本视图

但是,它在每次运行后都会崩溃。我认为这可能与tablerows没有上下文有关?这是所有相关的代码,如果有人能帮我,我将非常感激

public class Timetable123 extends Activity {
    TableRow[] row= new TableRow[36];  //declared at start

    InitializeTable(SortedDatesList.toArray(new String[SortedDatesList.size()])); // List converted to array sent to initializeTable

}

    private void InitializeTable(String...params){


        for(int i=0;i<36;i++) {
            row[i].setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
            try {
                for (Integer j = 0; j < (params.length+1); j++) {
                    TextView tv = new TextView(this);
                    tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
                            TableRow.LayoutParams.WRAP_CONTENT));
                    tv.setBackgroundResource(R.drawable.cell_shape);
                    tv.setPadding(5, 5, 5, 5);
                    row[i].addView(tv);
                    System.out.println(params[i] + " run " + i);
                }
            } catch (Exception ex) {
                System.out.println(ex);
            }
        }
    }
公共类时间表123扩展活动{
TableRow[]行=新的TableRow[36];//开始时声明
InitializeTable(SortedDataList.toArray(新字符串[SortedDataList.size()]);//转换为数组的列表发送到InitializeTable
}
private void InitializeTable(字符串…参数){

对于(int i=0;i创建类型为
TableRow
的数组,但在从数组访问
TableRow
之前不添加
TableRow
对象:

 for(int i=0;i<36;i++) {
   row[i]=new TableRow(Timetable123.this); //<< Create Object here
   row[i].setLayoutParams(new 
           TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
                        TableRow.LayoutParams.WRAP_CONTENT));
...
}

for(int i=0;i不确定如果我这样做了,那么我就不能从其他任何地方引用tablerow了?@user3925417:yes必须使用
row[i]=newTableRow(Timetable123.this);
行数组中的行在其他任何地方访问它之前添加tablerow对象