StringIndexOutOfBoundsException при добавлении 300 контактов в группу в Samsung Galaxy S - PullRequest
0 голосов
/ 14 октября 2010

я тестирую, чтобы добавить 300 контактов в мое приложение, и все шло хорошо, но в галактике он вылетает и не показывает мои 300 контактов, и они стерли контакты после сбоя.

кто-нибудь видел это?

Ответы [ 2 ]

1 голос
/ 14 октября 2010

простой ответ:

StringIndexOutOfBoundsException

Брошено по методам String, чтобы указать, что индекс либо отрицателен, либо превышает размер строки. Для некоторых методов, таких как метод charAt, это исключение также генерируется, когда индекс равен размеру строки.

может быть, вы обращаетесь к своей строке с помощью метода charAt ()? в любом случае доступ к позиции в строке, которой там нет, вернет массив, подобный вашему.

    String myString;
    myString = "Hello";
    System.out.println(charAt(10)); will cause a stringsIndexOutOfBoundsException

Подробный ответ:

объясняет, что происходит до того, как выдается какое-либо исключение indexoutofboundsexception. Я использовал массивы в качестве базового примера.

Это означает, что вы выполняете итерацию за пределами 300 контактов. Ut достиг конца массива и попытался получить доступ к следующему значению, которое является пустым. это возвращает исключение indexoutofboundsex.

При циклическом просмотре массива вы должны понимать, что первый элемент в массиве определяется как 0. Поскольку у java есть индекс, начинающийся с 0. Так что, обращаясь к первому элементу, вы должны делать это так myArray[0];

Итак, если вы хотите получить доступ к последнему элементу вашего массива, вы делаете что-то вроде myArray[myArray.size - 1]

Итак, если у вас есть 10 элементов, у вас будет массив, который выглядит следующим образом:

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Note there is no 10 as it starts from 0.

поэтому, когда вы пытаетесь получить доступ к элементу 10, вы делаете это так. туАггау [myArray.size-1] * +1033 *

myArray.size вернет размер массива, равный 10, затем мы минус 1, чтобы получить значение 9, затем мы можем получить доступ к десятому элементу, указав значение 9.

Это аккуратный способ отлова любых ошибок без вашего приложения во время выполнения. вместо этого он выдает пользователю сообщение об ошибке.

PK

0 голосов
/ 15 октября 2010

Ну, я думаю, что это Samsung Galaxy S, все еще добавляя его в представление ... поэтому для его рендеринга на устройстве потребуется некоторое время!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...