Java 正在获取IndexOutofBoundsException,无法找出原因
我得到索引越界异常,无法找出原因,请帮助我。我正在尝试遍历列表。列表大小为2。我正在尝试创建动态表并打印列表Java 正在获取IndexOutofBoundsException,无法找出原因,java,Java,我得到索引越界异常,无法找出原因,请帮助我。我正在尝试遍历列表。列表大小为2。我正在尝试创建动态表并打印列表 public void display(ArrayList list) { TableLayout tl = (TableLayout) findViewById(R.id.main_table); for(int i = 0;i<=list.size(); i++){ EmployeeBean
public void display(ArrayList list) {
TableLayout tl = (TableLayout) findViewById(R.id.main_table);
for(int i = 0;i<=list.size(); i++){
EmployeeBean empList = (EmployeeBean) list.get(i);
int count = 0;
TableRow tr = new TableRow(this);
tr.setId(100+count);
tr.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
tr.setClickable(true);
final TextView empName = new TextView(this);
empName.setId(200+count);
empName.setText(empList.getName());
tr.addView(empName);
final TextView empStream = new TextView(this);
empStream.setId(200+count);
empStream.setText(empList.getStream());
tr.addView(empStream);
final TextView empLevel = new TextView(this);
empLevel.setId(200+count);
empStream.setText(empList.getLevel());
final TextView empDesignation = new TextView(this);
empDesignation.setId(200+count);
empDesignation.setText(empList.getDesignation());
tl.addView(tr, new TableLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
count++;
tr.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
outpuText = new TextView(MainActivity.this);
outpuText.setText("Name: " + empName.getText() + "\n"
+ "Stream: " + empStream.getText() + "\n" + "Level: "
+ empLevel + "\n" + "Designation :" + empDesignation);
setContentView(outpuText);
}
});
}
在for循环中使用list.size()-1
而不是list.size()
:
for(int i = 0;i<=(list.size() - 1); i++)
for(int i=0;ifor(int i=0;i由于i
从零开始,并且size()
将返回数组中对象的计数,因此您的for
循环应修改为:
for(int i = 0; i < list.size(); i++)
for(int i=0;i
索引从0开始,您正在测试列表大小是否“小于或等于”
它将在三次迭代(0,1,2)中返回true
将“for”语句更改为
for(int i = 0; i<list.size(); i++){
for(int i=0;ipublic void显示(ArrayList列表){
TableLayout tl=(TableLayout)findviewbyd(R.id.main_table);
for(int i=0;i6)的答案都指向同一件事!
for(int i = 0;i<=(list.size() - 1); i++)
for(int i = 0;i<list.size(); i++)
for(int i = 0;i<=list.size(); i++)
int size = list.size();
for(int i = 0;i<size; i++)
for(int i = 0; i < list.size(); i++)
for(int i = 0; i<list.size(); i++){
public void display(ArrayList list) {
TableLayout tl = (TableLayout) findViewById(R.id.main_table);
for(int i = 0;i<=list.size(); i++){