2016-10-14 3 views
0

У меня есть contailer класс ServiceMeasureCollection:Добавление данных в контейнер класса в SQLite Android

import java.util.ArrayList; 

public class ServiceMeasureCollection { 
public String service_id=""; 
public String service_type=""; 
public String service_measure=""; 

public static ArrayList<ServiceMeasureCollection> data_arr=null; 
public ServiceMeasureCollection(String service_id,String service_type, String service_measure){ 

     this.service_id=service_id; 
     this.service_type=service_type; 
     this.service_measure=service_measure; 
    } 
} 

Я хочу назвать этот класс из ArrayList и заполнить его qith SQLITE данные следующим образом:

public ArrayList<ServiceMeasureCollection> getServiceProviderServices() { 
    ServiceMeasureCollection.data_arr = new ArrayList<ServiceMeasureCollection>(); 

    Log.d("test", "testing if getServProv Services works "); 
    String selectQuery = "SELECT * FROM " + TABLE_SERVICEPROVSERVICE; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 
    Log.d(TAG, "testing if getServProv Services works "); 
    // Move to first row 
    cursor.moveToFirst(); 

     if (cursor.getCount() > 0) { 
      do { 
       ServiceMeasureCollection.data_arr.add(new ServiceMeasureCollection(cursor.getString(0), 
       cursor.getString(8),cursor.getString(1))); 

      } while (cursor.moveToNext()); 
     } 

    cursor.close(); 
    db.close(); 
    // return user 
    Log.d(TAG, "Fetching user from Sqlite: " +ServiceMeasureCollection.data_arr.toString()); 

    return ServiceMeasureCollection.data_arr; 
} 

Everytime я пытаюсь вызвать его в мой Main через db.getServiceProviderServices() Я получаю исключение Null Pointer. Я предполагаю, что это потому, что я инициализирую data_arr=Null. Кто-нибудь знает, как исправить это или что такое реальная проблема?

StackTrace:

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: de.monobono.monobonoapp, PID: 4458 
        java.lang.NullPointerException 
         at de.monobono.monobonoapp.activity.ProviderServiceListFragment.onViewCreated(ProviderServiceListFragment.java:78) 
         at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086) 
         at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) 
         at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742) 
         at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) 
         at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517) 
         at android.os.Handler.handleCallback(Handler.java:733) 
         at android.os.Handler.dispatchMessage(Handler.java:95) 
         at android.os.Looper.loop(Looper.java:136) 
         at android.app.ActivityThread.main(ActivityThread.java:5147) 
         at java.lang.reflect.Method.invokeNative(Native Method) 
         at java.lang.reflect.Method.invoke(Method.java:515) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611) 
         at dalvik.system.NativeStart.main(Native Method) 

EDIT:

public class ProviderServiceListFragment extends Fragment { 

View myView; 
public String stampid; 
private ListView listView; 
private ListView listView2; 
private ListView listView3; 
public TextView dr_name; 
private ProgressDialog pDialog; 
private SQLiteHandler connection; 
private SQLiteHandler db; 
private ServiceMeasureAdapter list_adapter; 
private ListView lv_android; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    myView = inflater.inflate(R.layout.service_measure_list_section, container, 
false); 
     return myView; 

} 

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    stampid = getArguments().getString("stampID"); 
    super.onViewCreated(view, savedInstanceState); 

    db.getServiceProviderServices(); 

} } 
+0

Если у вас есть 'NullPointerException', у вас также есть StackTrace. Пожалуйста, поделитесь ею – 0xDEADC0DE

+0

@ 0xDEADC0DE См. Мое редактирование – Stefan

+0

У вас есть ошибка в этой функции: ProviderServiceListFragment.onViewCreated (ProviderServiceListFragment.java:78). Пожалуйста, поделитесь этой функцией – 0xDEADC0DE

ответ

1

Ваша переменная член private SQLiteHandler db является нулевым временем onViewCreated называется. Это вызывает NullPointerException. Вы должны добавить что-то вроде этого является onCreateView функцией вашего фрагмента

db = new SQLiteHandler(/*Required parameters*/); 
Смежные вопросы