Android 应用程序在 for 循环后崩溃
Android App crashes after for loop
我正在尝试在 android 中创建一个时间表应用程序,但当我按下按钮时它崩溃了。
我已经尝试调试它,但我发现它总是在 switch case 结束时崩溃,这与 case 的启动顺序无关。
这主要是class。
感谢您的帮助!
public void setContentView(View view) {
//getting information from "database"
Subjects subjects1 = new Subjects(9, 10, "test1", "building1", "room1", "teacher1", 5);
Subjects subjects2 = new Subjects(8, 11, "test2", "building2", "room2", "teacher1", 1);
//creating list and add items
List<Subjects> listTimetable = new ArrayList<>();
listTimetable.add(subjects1);
listTimetable.add(subjects2);
//new TextView with atribs
TextView textView = new TextView(this);
textView.setTextSize(25);
textView.setPadding(0, 0, 60, 0);
//get objects for timetable and sett strings
for (int i=0; i < listTimetable.size(); i++) {
Subjects newOne = listTimetable.get(i);
int stringNewOne = newOne.getWeekday();
switch (stringNewOne) {
case (1):
//setTextView a text
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowMon = (TableRow) findViewById(R.id.trMonday);
tableRowMon.addView(textView);
break;
case (2):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowTue = (TableRow) findViewById(R.id.trTuesday);
tableRowTue.addView(textView);
break;
case (3):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowWed = (TableRow) findViewById(R.id.trWednesday);
tableRowWed.addView(textView);
break;
case (4):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowThur = (TableRow) findViewById(R.id.trThrisday);
tableRowThur.addView(textView);
break;
case (5):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowFri = (TableRow) findViewById(R.id.trFriday);
tableRowFri.addView(textView);
break;
case (6):
textView.setText("Start Time" + newOne.getTimeStart() + "End Time" + newOne.getTimeEnd() + "\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowSat = (TableRow) findViewById(R.id.trSaturday);
tableRowSat.addView(textView);
break;
case (7):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowSun = (TableRow) findViewById(R.id.trSunday);
tableRowSun.addView(textView);
break;
default: break;
}
}
//add tablerow view Textview
//Console debugging Logging
Log.d("Test", "message");
String log = Integer.toString(subjects1.getTimeStart());
Log.d("school", log);
}
移动
//new TextView with atribs
TextView textView = new TextView(this);
textView.setTextSize(25);
textView.setPadding(0, 0, 60, 0);
在 for 循环中。一个View
不能有多个父级,同一个View
不能多次添加
我正在尝试在 android 中创建一个时间表应用程序,但当我按下按钮时它崩溃了。 我已经尝试调试它,但我发现它总是在 switch case 结束时崩溃,这与 case 的启动顺序无关。 这主要是class。 感谢您的帮助!
public void setContentView(View view) {
//getting information from "database"
Subjects subjects1 = new Subjects(9, 10, "test1", "building1", "room1", "teacher1", 5);
Subjects subjects2 = new Subjects(8, 11, "test2", "building2", "room2", "teacher1", 1);
//creating list and add items
List<Subjects> listTimetable = new ArrayList<>();
listTimetable.add(subjects1);
listTimetable.add(subjects2);
//new TextView with atribs
TextView textView = new TextView(this);
textView.setTextSize(25);
textView.setPadding(0, 0, 60, 0);
//get objects for timetable and sett strings
for (int i=0; i < listTimetable.size(); i++) {
Subjects newOne = listTimetable.get(i);
int stringNewOne = newOne.getWeekday();
switch (stringNewOne) {
case (1):
//setTextView a text
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowMon = (TableRow) findViewById(R.id.trMonday);
tableRowMon.addView(textView);
break;
case (2):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowTue = (TableRow) findViewById(R.id.trTuesday);
tableRowTue.addView(textView);
break;
case (3):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowWed = (TableRow) findViewById(R.id.trWednesday);
tableRowWed.addView(textView);
break;
case (4):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowThur = (TableRow) findViewById(R.id.trThrisday);
tableRowThur.addView(textView);
break;
case (5):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowFri = (TableRow) findViewById(R.id.trFriday);
tableRowFri.addView(textView);
break;
case (6):
textView.setText("Start Time" + newOne.getTimeStart() + "End Time" + newOne.getTimeEnd() + "\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowSat = (TableRow) findViewById(R.id.trSaturday);
tableRowSat.addView(textView);
break;
case (7):
textView.setText("Start Time" + newOne.getTimeStart()+"End Time"+newOne.getTimeEnd()+"\n" + " " +
newOne.getRoom
() + " " + newOne
.getBuilding());
TableRow tableRowSun = (TableRow) findViewById(R.id.trSunday);
tableRowSun.addView(textView);
break;
default: break;
}
}
//add tablerow view Textview
//Console debugging Logging
Log.d("Test", "message");
String log = Integer.toString(subjects1.getTimeStart());
Log.d("school", log);
}
移动
//new TextView with atribs
TextView textView = new TextView(this);
textView.setTextSize(25);
textView.setPadding(0, 0, 60, 0);
在 for 循环中。一个View
不能有多个父级,同一个View
不能多次添加