Почему происходит сбой моего приложения для Android при вставке строки? - PullRequest
1 голос
/ 22 ноября 2010

Я только начинаю разработку под Android и столкнулся с некоторыми проблемами, с которыми мне не помогает учебник.

Это моя функция вставки: public long insertEntry (элемент BudgetsItem) {assert item.id == -1;

    ContentValues newBudgetValues = new ContentValues();
    newBudgetValues.put("name", item.name);
    newBudgetValues.put("balance", item.balance);

    item.id = db.insert(DATABASE_TABLE_NAME, null, newBudgetValues);

    return item.id;
}

Это определение моей таблицы:

private static final String TABLE_CREATE = "CREATE " + DATABASE_TABLE_NAME + "(\n" +
    "id INTEGER PRIMARY KEY AUTOINCREMENT, \n" +
    "name TEXT, \n" +
    "balance DOUBLE);";

И это то, что вызывает адаптер до его сбоя:

        BudgetsAdapter adapter = new BudgetsAdapter(getBaseContext());
        BudgetsItem newBudget = new BudgetsItem(budgetName, balance);
        if(adapter.insertEntry(newBudget) != -1){
            Toast.makeText(getApplicationContext(), "Budget Created!", Toast.LENGTH_SHORT);
            finish();
        }else{
            Toast.makeText(getApplicationContext(), "Oops, something failed.", Toast.LENGTH_SHORT);
        }

Сбой в строке db.insert с исключением NullPointerException.Кто-нибудь может сказать мне, почему?

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

В этом случае есть только одна вещь, которая может быть нулевой: db.Вы уверены, что инициализируете их?

1 голос
/ 22 ноября 2010

Вы не предоставляете нам никакой информации о вашем объекте db (я полагаю, он представляет вашу базу данных.

, поскольку вы сказали, что он падает при вставке db, я должен был бы предположить, что db не инициализируется в тот момент, когда вы выполняетевставка. Я бы предложил 1) добавить if (db! = null)

, если последняя строка в вашем журнале сбоев находится на db.insert.

, если есть еще строки, пожалуйстадобавьте свой стек в ваш пост, чтобы мы могли помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...