私は作業中のタブ付きレイアウトを持っています。2 番目のタブでは、アイテムのリストを維持します。最初のタブの別のリストから項目を削除すると、静的な add メソッドを呼び出して 2 番目のタブに追加する必要があります。アプリの最初の起動時にこれを行うと、2 番目のタブにあるアクティビティでデータベース変数が初期化されていない (デバッガーを使用してチェックされている) (onCreate メソッドが呼び出されていない) ため、null ポインター例外が発生します。ただし、アプリを起動してタブに切り替え、最初のタブに戻ってアイテムを削除すると、onCreate メソッドが呼び出されたため、通常どおりに動作します。だから私の質問はこれです.データベースがインスタンス化されていること、または静的メソッドを呼び出して追加する前に2番目のアクティビティ/タブのonCreateを確認するにはどうすればよいですか?
静的メソッドを呼び出すコードは次のとおりです
ShoppingListActivity.addToShoppingList(name, quan);
ここに静的メソッドがあります
public static void addToShoppingList(String name, int quan)
{
shoppingDb.insertFood(name, quan);
}
onCreate が呼び出されていないため、初期化されておらず null を返しているのは shoppingDb 変数です。