我在我的主要活动中创建了一个简单的rawQuery,但它不起作用。光标不起作用,但我的数据库已经在外部存储中的此PELE文件夹中。请帮我解决问题
我的帮助班是:
public class Helper extends SQLiteOpenHelper{
private static final String LOGTAG="EXPLORECA";
private static final String DATABASE_NAME="Adatbazis.db";
private static final int DATABASE_VERSION=1;
private static final String FILE_DIR="PELE";
public Helper(Context context) {
super(context, Environment.getExternalStorageDirectory()
+ File.separator + FILE_DIR
+ File.separator + DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i(LOGTAG, "Az adattábla elkészült");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
这是我的主要活动。
public class MainActivity extends AppCompatActivity {
SQLiteOpenHelper dbHelper;
SQLiteDatabase db;
Spinner helysegvalaszto, tagvalaszto, reszletvalaszto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helysegvalaszto();
}
public void helysegvalaszto(){
dbHelper= new Helper(this);
db=dbHelper.getReadableDatabase();
ArrayList<String> helysegek = new ArrayList<String>();
Cursor Chelyseg = db.rawQuery("select DISTINCT Helykod.h_kod, Helykod.h_nev from import1 JOIN Helykod on import1.helyseg=Helykod.h_kod", null);
Chelyseg.moveToFirst();
String hely = "";
while (!Chelyseg.isAfterLast()) {
hely = "" + Chelyseg.getString(Chelyseg.getColumnIndex("h_nev"));
helysegek.add(hely);
Chelyseg.moveToNext();
}
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
helysegek);
helysegvalaszto.setAdapter(adapter1);
}
}
感谢您的帮助:):)
答案 0 :(得分:0)
通过扩展SQLiteOpenHelper,您可以告诉android db的名称以及要在db中创建的所有结构。与桌子一起&#39;如果要使用预先填充的数据库,则需要使用SqliteAssetHelper。
第1步
在依赖关系部分中将以下内容添加到应用程序的gradle文件中:
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
第2步
在app/main/src
的项目结构中,创建名为assets
的目录
在assets
内创建名为databases
的目录。
第3步
将adatbazis.db
放入databases
目录。
第4步
将Helper
类代码更改为以下
public class Helper extends SQLiteAssetHelper{
private static final String DATABASE_NAME = "jain.db";
private static final int DATABASE_VERSION = 1;
public MySQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}