База данных Android SQLiteAssetHelper не открывается - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь подключить базу данных 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;
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...