При переборе массива возникает java.lang.ExceptionInInitializerError

369
05 сентября 2017, 09:19

Перебирается массив объектов по наличию в них искомой пользователем строки. При попытке в foreach-цикле перебрать все элементы массива, приложение вылетает. Вот вывод монитора и код, инициирующий сортировку:`

09-03 19:15:41.625 14939-14939/com.info.my.tyranidinfo E/AndroidRuntime: 
FATAL EXCEPTION: main Process: com.info.my.tyranidinfo, PID: 14939 
java.lang.ExceptionInInitializerError at com.info.my.tyranidinfo.AllUnitFragment.update(AllUnitFragment.java:73)
at com.info.my.tyranidinfo.AllUnitFragment.onCreateView(AllUnitFragment.java:54) 
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2239) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1332) 
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1574) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1641) 
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:794) 
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415) 
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2200) 
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2153) 
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2063) 
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:725) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=2; index=2 
at com.info.my.tyranidinfo.dummy.DummyContent.(DummyContent.java:19) 
at com.info.my.tyranidinfo.AllUnitFragment.update(AllUnitFragment.java:73)  
at com.info.my.tyranidinfo.AllUnitFragment.onCreateView(AllUnitFragment.java:54)  
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2239)  
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1332)  
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1574)  
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1641)  
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:794)  
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415)  
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2200)  
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2153)  
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2063)  
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:725)  
at android.os.Handler.handleCallback(Handler.java:739)  
at android.os.Handler.dispatchMessage(Handler.java:95)  
at android.os.Looper.loop(Looper.java:148)  
at android.app.ActivityThread.main(ActivityThread.java:5417)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

,

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.info.my.tyranidinfo.dummy.DummyContent;
import com.info.my.tyranidinfo.dummy.DummyContent.DummyItem;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
 import java.util.ListIterator;
public class AllUnitFragment extends Fragment {
private StringBuilder search = new StringBuilder("");
RecyclerView mRecyclerView;
AllUnitAdapter mAdapter;
public AllUnitFragment() {
}
public void setSearch(CharSequence search) {
    this.search.setLength(0);
    this.search.append(search);
}
public static AllUnitFragment newInstance(int columnCount) {
    AllUnitFragment fragment = new AllUnitFragment();
    return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_unit_list, container, false);
    if (view instanceof RecyclerView) {
        Context context = view.getContext();
        mRecyclerView = (RecyclerView) view;
        mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        update();
    }
    return view;
}
public void update() {
    List<DummyItem> list = new ArrayList<DummyItem>();
    if (!search.toString().equals("")){
        for (DummyItem dummyItem : DummyContent.ITEMS) { //здесь возникает ошибка
            if (dummyItem.FirstName.contains(search)) { 
                list.add(dummyItem);
            }
            if (dummyItem.SecondName.contains(search)) {
                DummyItem item = new DummyItem(dummyItem.SecondName, dummyItem.FirstName, dummyItem.details);
                list.add(item);
            }
        }
    } else {
        for (DummyItem dummyItem : DummyContent.ITEMS) { //или здесь
            list.add(dummyItem);
        }
    }
    mAdapter = new AllUnitAdapter(list);
    mRecyclerView.setAdapter(mAdapter);
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);
}
@Override
public void onDetach() {
    super.onDetach();
}

Объясните, как исправить, и если можно, когда возникает такая ошибка. Заранее благодарю.

READ ALSO
Получить дату из DatePickerDialog

Получить дату из DatePickerDialog

Есть класс DialogObject наследник от DialogFragment:

272
Как добавлять в подключаемое поле при использовании Hybernate,JPA?

Как добавлять в подключаемое поле при использовании Hybernate,JPA?

Создал необходимые классы-сущности, аннотации, подключение, всё работаетХочу добавить в "подключаемое" поле, тип которого MainCountryEntity, значение...

178
Описание схожих классов Java

Описание схожих классов Java

Нужно описать 2 класса, подскажите правильно ли я это сделал? Если нет подскажите как сделать правильноЗаранее спасибо

230
Хранение в массиве ссылок на другой массив

Хранение в массиве ссылок на другой массив

Как можно хранить в одном массиве (1)ссылки на другой массив(2)Производя изменения во втором массиве менялись значения в первом

172