Я пытаюсь подключить базу данных SQLite в Android Studio через SQLiteAssetHelper, я перепробовал все, но он показывает ... Невозможно открыть базу данных.
Я не знаю, в чем здесь проблема. Я новичок в разработке Android.
Я видел ответы на другие вопросы, но это не могло мне помочь.
Это мой класс БД:
public class MyDB extends SQLiteAssetHelper {
private static final String DB_NAME="Demo.db";
private static final int DB_ver=1;
//private static MyDB myDB=null;
public MyDB(Context context) {
super(context, DB_NAME, null, DB_ver);
}
}
это класс доступа к БД:
public class OpenDBHelper {
private SQLiteOpenHelper openHelper;
private SQLiteDatabase db;
private static OpenDBHelper openDBHelper ;
private OpenDBHelper(Context context)
{
this.openHelper = new MyDB(context);
}
public static OpenDBHelper getInstance(Context context)
{
if(openDBHelper==null)
{
openDBHelper=new OpenDBHelper(context.getApplicationContext()) ;
}
return openDBHelper;
}
public SQLiteDatabase openwrite()
{
this.db= openHelper.getReadableDatabase();
return db;
}
}
и это основное занятие, в котором я пытаюсь загрузить данные в виде списка:
public class MainActivity extends AppCompatActivity {
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView) findViewById(R.id.lv_main);
loadStudents();
}
public void loadStudents()
{
ArrayList<HashMap<String, String>> userList = GetAllStudents();
ListAdapter adapter = new SimpleAdapter(this, userList, R.layout.lv_row,new String[]{"name","cast","phone"}, new int[]{R.id.tv_name, R.id.tv_cast, R.id.tv_phone});
lv.setAdapter(adapter);
}
//GEt All Students to listview
public ArrayList<HashMap<String, String>> GetAllStudents(){
ArrayList<HashMap<String, String>> userList = new ArrayList<>();
OpenDBHelper open= OpenDBHelper.getInstance(this);
SQLiteDatabase db=open.openwrite();
String query = "SELECT * FROM tbl_bio";
Cursor cursor = db.rawQuery(query,null);
if(cursor.getCount()>0) {
while (cursor.moveToNext()) {
HashMap<String, String> user = new HashMap<>();
user.put("name", cursor.getString(1));
user.put("cast", cursor.getString(2));
user.put("phone", cursor.getString(3));
//user.put("pass", cursor.getString(4));
userList.add(user);
}
}
return userList;
}
}