Olá, há um tempo postei aqui pedindo ajuda sobre um select em um listview, após isso consegui fazer todos os outros sem problema, mas este em especial não quer dar certo... o erro é este:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.hlnengenharia.app, PID: 14293
java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.hlnengenharia.app/br.com.hlnengenharia.app.listas.ListaInspecaoActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Long br.com.hlnengenharia.app.model.Inspecao.getId()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2572)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5728)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Long br.com.hlnengenharia.app.model.Inspecao.getId()' on a null object reference
at br.com.hlnengenharia.app.listas.ListaInspecaoActivity.carregaLista(ListaInspecaoActivity.java:68)
at br.com.hlnengenharia.app.listas.ListaInspecaoActivity.onCreate(ListaInspecaoActivity.java:39)
at android.app.Activity.performCreate(Activity.java:6301)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5728)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
E o código é este:
String setorSQL = "CREATE TABLE Setores(setor_id INTEGER PRIMARY KEY AUTOINCREMENT, setor_nome TEXT NOT NULL, " +
"setor_atividade TEXT, idUnidade TEXT NOT NULL, FOREIGN KEY (idUnidade) REFERENCES Unidades (unidade_id));";
String inspecaoSQL = "CREATE TABLE Inspecoes (inspecao_id INTEGER PRIMARY KEY AUTOINCREMENT, inspecao_nome TEXT NOT NULL," +
"idSetor TEXT NOT NULL, FOREIGN KEY (idSetor) REFERENCES Setores (setor_id));";
private void carregaLista() {
InspecaoDAO dao = new InspecaoDAO(this);
Long id = inspecao.getId();
List<Inspecao> inspecoes = dao.buscaInspecao(id);
dao.close();
ArrayAdapter<Inspecao> adapter = new ArrayAdapter<Inspecao>(this, android.R.layout.simple_list_item_1, inspecoes);
listaInspecao = findViewById(R.id.lista_inspecao);
listaInspecao.setAdapter(adapter);
}
public List<Inspecao> buscaInspecao(Long id) {
List<Inspecao> i = new ArrayList<>();
Cursor c = dao.getReadableDatabase().rawQuery("SELECT * FROM Inspecoes JOIN Setores ON idSetor=setor_id WHERE idSetor=?",new String[]{id.toString()});
while (c.moveToNext())
i.add(criaSetor(c));
c.close();
return i;
}