1

我不知道为什么,但是如果我创建一个子字符串,应用程序就会崩溃!

这是代码:

while(data_mio.moveToNext())
{
    titolo_da_inserire=data_mio.getString(prodotto);
    titolo_da_inserire=titolo_da_inserire.substring(0,35)+"...";
    personList.add( new Prodotto_per_lista(
                      R.drawable.freccia_1, titolo_da_inserire,
                      Integer.parseInt(data_mio.getString(id_immagine)))
                  );
}
4

2 回答 2

1

实际上声明String titolo_da_inserire就像,

String titolo_da_inserire = "";

现在,在使用之前subString() 检查String titolo_da_inserire的长度

if(titolo_da_inserire.length() >= 35)
 titolo_da_inserire = titolo_da_inserire.substring(0,35)+"...";
else
 titolo_da_inserire = titolo_da_inserire.substring(0,titolo_da_inserire.length())+"...";
于 2012-08-30T10:48:29.413 回答
1

如果您的titolo_da_inserire String少于 35,那么它将抛出java.lang.StringIndexOutOfBoundsException您的应用程序崩溃的方式

样本

String st ="string";

st = st.substring(0,15); // throws exception String index out of range

System.out.println(st);

所以你需要检查长度

if(st.length()>15)

{

st = st.substring(0,15);

System.out.println(st);

}
于 2012-08-30T11:07:17.170 回答