Wyjątek AutoCompleteTextView sqlite poplulation
Mój pierwszy post miał mniej niż połowę mojego tekstu, stąd drugi (pełny) post.
Pracuję nad aplikacją testową za pomocą sqlite, aby wypełnić dwa AutoCompleteTextView używam marki i modelu samochodu do testu
Autouzupełnianie:
makeAutocomplete
modelKompletny
Lista makeAutocomplete jest wypełniana z kwerendy sql i działa poprawnie
druga jest wypełniana po wybraniu marki
makeAutoComplete.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
final String[] makeSelected = {arg0.getItemAtPosition(arg2).toString()};
final String[] modelDeal = sqlDBModel.getAllModelFilter(makeSelected);
ArrayAdapter<String> modelAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, modelDeal);
initModelAutoComplete(modelAdapter);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
deklaracja initModelAutoComplete
public void initModelAutoComplete(ArrayAdapter<String> adapter){
//adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, list);
modelAutoComplete.setAdapter(adapter);
modelAutoComplete.setThreshold(1);
modelAutoComplete.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
arg0.getItemAtPosition(arg2);
}
});
}
Deklaracja SQLiteModelSearch.getAllModelFilter
public String[] getAllModelFilter(String[] vehiclemake){
if(vehiclemake != null){
Cursor cursor = this.sqliteDBInstance.query(DB_MAKEMODEL_TABLE,
new String[]{DB_COLUMN_MAKE, DB_COLUMN_MODEL},
DB_COLUMN_MAKE+"=?",
vehiclemake,
null,
null,
null,
null);
if( cursor != null){
String[] str = new String[cursor.getCount()];
int i = 0;
while(cursor.moveToNext()){
str[i] = cursor.getString(cursor.getColumnIndex(DB_COLUMN_MODEL));
i++;
}
return str;
} else {
Log.i("vehiclemake = ", "NULL");
return new String[]{};
}
}
return new String[]{};
}
LogCat
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w android.app.ActivityThread.main (ActivityThread.java:3683)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w java.lang.reflect.Method.invokeNative (Metoda rodzima) 07-31 13: 00: 19.631: E / AndroidRuntime (1302): FATAL EXCEPTION: main
07-31 13: 00: 19.631: E / AndroidRuntime (1302): java.lang.NullPointerException
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w com.myapp.sqltest.database.SQLiteModelSearch.getAllModelFilter (SQLiteModelSearch.java:100)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): na com.myapp.sqltest.activity.addVehicleActivity $ 2.onItemSelected (addVehicleActivity.java:62)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w android.widget.AdapterView.fireOnSelected (AdapterView.java:871)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w android.widget.AdapterView.access 200 USD (AdapterView.java:42)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w android.widget.AdapterView $ SelectionNotifier.run (AdapterView.java:837)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w android.os.Handler.handleCallback (Handler.java:587)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w android.os.Handler.dispatchMessage (Handler.java:92)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): na android.os.Looper.loop (Looper.java:130)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w java.lang.reflect.Method.invoke (Method.java:507)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:839)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): w dalvik.system.NativeStart.main (Metoda natywna)
Widzę, że wyjątek jest rzucany w:
Cursor cursor = this.sqliteDBInstance.query(DB_MAKEMODEL_TABLE,
new String[]{DB_COLUMN_MAKE, DB_COLUMN_MODEL},
DB_COLUMN_MAKE+"=?",
vehiclemake,
null,
null,
null,
null);
ale nie mogę powiedzieć dlaczego, obserwowałem wszystkie zmienne wchodzące w funkcje i żaden z nich nie jest pusty?