при загрузке моей основной деятельности, я хочу найти в базе данных все записи и отобразить в списке. Когда он переходит к функции в моем классе DatabaseHandler getAllClients(), чтобы прочитать все записи, он сработает. Здесь я отображал фрагменты кода и привязывался ко всему файлу. Ошибка происходит приAndroid NullPointerException в списке
List<Client> addableClients = dbHandler.getAllClients();
MainActivity.java
...
DatabaseHandler dbHandler;
...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
clientListView = (ListView) findViewById(R.id.list);
//Below is the code to go to the QR Code
//Move to main screen on button click
//
//Intent gotoQRCode = new Intent(LoginActivity.this, Keytag.class);
//gotoQRCode.putExtra(CLIENTID, jsonObject.optString("clientID"));
//startActivity(gotoQRCode);
//Below line throws NullPointerException
List<Client> addableClients = dbHandler.getAllClients();
int clientCount = dbHandler.getClientCount();
for(int i = 0; i < clientCount; i++) {
Clients.add(addableClients.get(i));
}
populateList();
}
Посмотреть полный файл на http://pastebin.com/JhYZ35ri
DatabaseHandler.java
public List<Client> getAllClients() {
List<Client> clients = new ArrayList<Client>();
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
if(cursor != null) {
cursor.moveToFirst();
do {
clients.add(new Client(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2), Uri.parse(cursor.getString(3)), cursor.getString(4)));
}
while (cursor.moveToNext());
}
cursor.close();
db.close();
return clients;
}
См фу Л.Л. файл на http://pastebin.com/4CYheGpG
Если вы правильно идентифицировать обижая линию, то '' dbHandler' является null'. –
Где вы определяете и создаете экземпляр 'dbHandler'? Это не в показанном коде. – David
dbHandler? или dbHandler.getAllClients()? – swg1cor14