Привет, я не уверен, что это проблема с Eclipse или Java, но недавно мой код перестал работать. Я только изменил такие вещи, как назначение новых переменных для хранения вещей. Моя программа принимает многомерный массив строк и должна возвращать новый массив, обрезанный до нуля.
public void makebuttons(final int n, String equals) {
//does lots of widget functions and id assignments
String[] items=getArray(Integer.parseInt(data.equnits.substring(n*3, n*3+1)));
unitvalues[n]=Integer.parseInt(data.equnits.substring(n*3, n*3+1));
ArrayAdapter aa = new ArrayAdapter(this,android.R.layout.simple_spinner_item, items);
//does more code
}
public static String[] getArray(int selection) {
String[] result;//stores the new array
int x=0,j=0 ,ulength = data.units[0].length;//ints used
String temp="";
while(j < ulength && temp!=null) {
temp= data.units[selection][j][0]; //find the actual array length
j++;
}
if(j==ulength)j--;
result = new String[j+1];//initalise array from check
for(x=0; x<=j; x++) { //add data to array
result[x]=data.units[selection][x][0];
}
return result;//return corrected array
}
Integer.parseInt
и Integer.valueOf
каждый раз дают значение 0 для строки типа "01,02,03,04" data.equnits
хранит строку, которая должна быть преобразована в целое число, проверяя только 2 цифры, чтобы выбрать из большого 3-х мерный массив. Поскольку это трехмерный массив, некоторые нули присутствуют
Нулевая проверка для String, похоже, не работает, поскольку цикл while, похоже, не обнаруживает его и оказывается в массиве, который передается в адаптер массива для спиннера, вызывая NullPointerException
во время прокрутки.
Перезапуск затмения не помогает.