Как вы увидите в коде, я получаю данные базы данных в ArrayList и передаю их в listview, получая исключение в dataIntArrayList3.get (i).На самом деле существует две базы данных, я передаю данные одной базы данных в адаптер списка во время выборки и получения базы данных другой базы данных, используя ее сохранение в списке массивов.
Cursor cursord=diffhelper.getAllData();
if(cursord.getCount() ==0){
return;
}
StringBuffer stringBuffer= new StringBuffer();
while (cursord.moveToNext()) {
dataIntArrayList3.add(cursord.getInt(1));
Log.e("Difference","Dffkm:"+cursord.getInt(1));
}
//#######################################
Cursor cursor=myhelper.getAllData();
if(cursor.getCount() ==0){
return;
}
int i=0;
while (cursor.moveToNext()) {
customDataListModelList.add(new CustomDataListModel(cursor.getString(2),cursor.getString(3),(cursor.getInt(1)),dataIntArrayList3.get(i)));
Log.e("AllListData","Date:"+cursor.getString(2));
Log.e("AllListData","Time"+cursor.getString(3));
Log.e("AllListData","Km:"+cursor.getInt(1));
i++;
}
Logcat:
java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
at java.util.ArrayList.get(ArrayList.java:437)
at com.quad14.obdnewtry.activity.KmListData.onCreate(KmListData.java:82)
at android.app.Fragment.performCreate(Fragment.java:2503)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1256)
at android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2426)
at android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2205)
at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2161)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2062)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:738)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6680)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Ожидаемый результат - получение значения обеих баз данных в виде списка.а также хочу знать, что не так с моей логикой или кодом
, получая результат при перемещении другого курсора, который также размещен в коде:
Cursor cursord=diffhelper.getAllData();
int i=0;
if(cursord.getCount() ==0){
return;
}
StringBuffer stringBuffer= new StringBuffer();
while (cursord.moveToNext()) {
dataIntArrayList3.add(cursord.getInt(1));
Log.e("Difference","Dffkm:"+cursord.getInt(1));
Log.e("datachecking","arrayvlue:"+dataIntArrayList3.get(i));
i++;
}
Logcat, который является:
2019-02-19 13:00:29.547 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:60
2019-02-19 13:00:29.547 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:63
2019-02-19 13:00:29.547 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:-126
2019-02-19 13:00:29.547 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:0
2019-02-19 13:00:29.547 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:1
2019-02-19 13:00:29.547 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:-1
2019-02-19 13:00:29.547 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:0
2019-02-19 13:00:29.547 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:9
2019-02-19 13:00:29.550 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:-9
2019-02-19 13:00:29.550 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:1
2019-02-19 13:00:29.550 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:-1
2019-02-19 13:00:29.551 6269-6269/com.quad14.obdnewtry E/datachecking: arrayvlue:1