2016-06-30 5 views
0

私は現在、アプリケーション側でデータベースを開くにはSQLiteDatabase myDatabase=this.openOrCreateDatabase("conference",MODE_PRIVATE,null);、クエリを実行するにはmyDatabase.execQuery()を使用しています。今私は別のデバイスでテストしていたとき、私は他の携帯電話にapkファイルをインストールすると、私はexecQuery()で準備したデータベースは他の携帯電話に運ばなかったことがわかりました。あらかじめ定義されたdbファイルを保持し、アンドロイドのSQLiteDatabaseクラスで開く方法は?

私はこの問題を解決することを検討しています。私はすでに用意された.dbファイルを生のフォルダのどこかに置いてそこからデータベースを開く必要があると思います。

どうすればいいですか?

+0

生デシベルとしてデータベースはあなたがそれらを追加することはできませんアンドロイドで作成されるため、アプリケーションではなく、データベースのシングルトンクラスを実装してみてください。アプリケーションの作業ディレクトリの中に.dbファイルをパッケージ化する必要があります。 –

+1

ライブラリを確認するhttps://github.com/jgilfelt/android-sqlite-asset-helper –

答えて

-1

あなたがちょうどあなた自身の質問に答えシングルトンクラスの例

public class CrimeLab { 
    private static CrimeLab sCrimeLab; 

    private List<Crime> mCrimes; 
    public static CrimeLab get(Context context) { 
     ... 
    } 
    private CrimeLab(Context context) { 
     mCrimes = new ArrayList<>(); 
    } 
    public List<Crime> getCrimes() { 
     return mCrimes; 
    } 
    public Crime getCrime(UUID id) { 
     for (Crime crime : mCrimes) { 
      if (crime.getId().equals(id)) { 
       return crime; 
      } 
     } 
     return null; 
    } 
} 
関連する問題