我正在使用数据库构建应用程序。该数据库包含Textview的字符串。我有6个textview,其中3个为空。用户插入带有Edittext的文本,并将该文本与另外3个字符串进行比较,如果正确,则进入空白textview。
t1 = findViewById(R.id.textView4);
t2 = findViewById(R.id.textView5);
t3 = findViewById(R.id.textView6);
t4 = findViewById(R.id.textView7);
t5 = findViewById(R.id.textView8); //empty
t6 = findViewById(R.id.textView9);
t7 = findViewById(R.id.textView10); //empty
t8 = findViewById(R.id.textView11); //empty
a = t1.getText().toString();
b = t2.getText().toString();
c = t3.getText().toString();
tL1 = new ArrayList<>();
tL1.add(a);
tL1.add(b);
tL1.add(c);
tL2 = new ArrayList<TextView>();
if(t5.equals("")){
tL2.add(t5);
}
if(t6.equals("")){
tL2.add(t6);
}
if(t7.equals("")){
tL2.add(t7);
}
if(t8.equals("")){
tL2.add(t8);
}
我使用Arraylist构建一个带有空textviews的数组。现在,我试图用文本填充空的textviews。如何在不知道哪个文本为空的情况下将文本放入Textview?我尝试过
tL2.get(0).setText(a);
但不起作用。出来
E / AndroidRuntime:致命例外:主要。 java.lang.IndexOutOfBoundsException:索引:0,大小:0
答案 0 :(得分:0)
您收到的错误告诉您tL2为空。我猜您想将textViews中的文本与一个空字符串进行比较,因此您应该修改代码,使其看起来像这样:
if(t5.getText().equals("")){
tL2.add(t5);
}
此外,最好在使用第一个元素之前检查tL2是否内部包含元素,所以我将最后一段代码修改如下:
if (tL2.size()>0)
tL2.get(0).setText(a);