私は小さな問題を抱えています (そして、それはおそらく深刻な問題ではありません)。
私はこのように始まる小さなアプリを持っています
namespace Paul.App
{
[Activity(Label = "@string/ApplicationName", MainLauncher = true, Theme = "@android:style/Theme.NoTitleBar",
ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait, Icon = "@drawable/icon")]
public class Paul : Application
{
public static Paul Application;
public Paul(IntPtr handle, JniHandleOwnership transfer) : base(handle, transfer)
{
このアプリでは、
public Database dbm;
データベースは SQL を行うクラスです
この名前空間には、次のように開始する新しいアクティビティを呼び出す OnCreate もあります
namespace Paul.App.Splash
{
[Activity(Theme = "@style/Theme.Splash", MainLauncher = true, NoHistory = true)]
public class Splash : Activity
{
protected override void OnCreate(Bundle bundle)
{
これで問題ありません。すべて問題ありません。一つのことを除いて。データベースをインスタンス化できません!
OnCreate または Paul(IntPtr...) に入れて他のアクティビティで使用する場合
dbm = 新しい DBManager();
スプラッシュが始まりますが、((Paul)Application).dbm を使用して dbm にアクセスしようとすると、null が返されます。
Splashアクティビティでこれを行うと
((Paul)Application).dbm = new DBManager();
if (((Paul)Application).dbm.SetupDB() != false)
{
Toast.MakeText(this, "Database failed to initialise", ToastLength.Long);
return;
}
デバッガーは、((Paul) が不明であることを示しています。
これは簡単なことです。SQLite を一度インスタンス化してから、アプリ全体で使用しようとしています。
ここで何か助けていただければ幸いです。
ポール