AutoCompleteTextView excepción de poplulation sqlite
Mi primera publicación solo tenía menos de la mitad de mi texto, por lo tanto, la segunda (completa) publicación.
Estoy trabajando en una aplicación de prueba que utiliza sqlite para completar dos AutoCompleteTextView que estoy usando marca y modelo de auto para la prueba
Autocompletar:
makeAutocomplete
modeloAutocompletar
La lista de makeAutocomplete se rellena desde una consulta de SQL y funciona bien
el segundo se rellena cuando se selecciona la marca
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
}
});
initModelAutoCompleta Declaración
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);
}
});
}
Declaración de 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): en android.app.ActivityThread.main (ActivityThread.java:3683)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en java.lang.reflect.Method.invokeNative (Método nativo) 07-31 13: 00: 19.631: E / Android Runtime (1302): EXCEPCIÓN FATAL: principal
07-31 13: 00: 19.631: E / AndroidRuntime (1302): java.lang.NullPointerException
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en com.myapp.sqltest.database.SQLiteModelSearch.getAllModelFilter (SQLiteModelSearch.java:100)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en com.myapp.sqltest.activity.addVehicleActivity $ 2.onItemSelected (addVehicleActivity.java:62)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en android.widget.AdapterView.fireOnSelected (AdapterView.java:871)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en android.widget.AdapterView.access $ 200 (AdapterView.java:42)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en android.widget.AdapterView $ SelectionNotifier.run (AdapterView.java:837)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en android.os.Handler.handleCallback (Handler.java:587)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en android.os.Handler.dispatchMessage (Handler.java:92)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en android.os.Looper.loop (Looper.java:130)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en java.lang.reflect.Method.invoke (Method.java:507)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:839)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597)
07-31 13: 00: 19.631: E / AndroidRuntime (1302): en dalvik.system.NativeStart.main (Método nativo)
Puedo ver que la excepción está siendo lanzada a:
Cursor cursor = this.sqliteDBInstance.query(DB_MAKEMODEL_TABLE,
new String[]{DB_COLUMN_MAKE, DB_COLUMN_MODEL},
DB_COLUMN_MAKE+"=?",
vehiclemake,
null,
null,
null,
null);
pero no puedo decir por qué, he visto todas las variables que entran en las funciones y ninguna de ellas es nula.