Я разрабатываю цитату приложения и использую локальную базу данных для импорта цитат.
Это 4 таблицы, созданные в sqldatabase.
введите описание изображения здесь
и здесь в совокупности Таблица базы данных
моя таблица называется "be.db". Я помещаю ее в папку активов в Android Studio
, как вы можетесм. на рисунке заголовок «Жизнь» имеет более 1 цитаты, потому что в приложении, когда я хочу щелкнуть элемент «жизнь», я хочу, чтобы он показывал мне первую цитату, а затем я переходил к другой цитате, находящейся в передней части приложения.
первая страница приложения
проблема, я не знаю, как импортировать несколько или 3 таблицы из базы данных sqldatabase, я знаю только, как импортировать одну из них, как вы можете видеть ниже, это мойкод в моем классе "DatabaseHelper" в Android Studio:
public class DataBaseHelper extends SQLiteOpenHelper {
public static final String DBNAME="be.db";
public static final String DBLOCATION=Environment.getDataDirectory()+"/data/com.example.z210.story/databases/";
private Context mcontext;
private SQLiteDatabase mDatabase;
public DataBaseHelper(Context context) {
super(context,DBNAME,null,1);
this.mcontext=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void openDatabase() {
//l'acces au notre base de donnees
String dbPath=mcontext.getDatabasePath(DBNAME).getPath();
if(mDatabase!=null && mDatabase.isOpen()){
return;
}
mDatabase=SQLiteDatabase.openDatabase(dbPath,null,SQLiteDatabase.OPEN_READWRITE);
}
public void closeDatabbase(){
if(mDatabase !=null){
mDatabase.close();
}
}
public ArrayList getAllTitles(){
ArrayList arrayList=new ArrayList();
openDatabase();
Cursor res=mDatabase.rawQuery("select * from title ",null);
res.moveToFirst();
while(!res.isAfterLast()){
arrayList.add(res.getString(res.getColumnIndex("title")));
res.moveToNext();
}
res.close();
closeDatabbase();
return arrayList;
}
public ArrayList getAllQuotes(){
ArrayList arrayList=new ArrayList();
openDatabase();
Cursor res=mDatabase.rawQuery("select * from quote ",null);
res.moveToFirst();
while(!res.isAfterLast()){
arrayList.add(res.getString(res.getColumnIndex("quote")));
res.moveToNext();
}
res.close();
closeDatabbase();
return arrayList;
}
public String get_full_story(String title){
String full_story;
openDatabase();
Cursor res =mDatabase.rawQuery("select * from title where quote like '"+getAllQuotes() +"'",null);
res.moveToFirst();
full_story=res.getString(res.getColumnIndex("quote"));
res.close();
closeDatabbase();
return full_story;
}
}
и вот мой код в основной деятельности
public class MainActivity extends AppCompatActivity {
DataBaseHelper db =new DataBaseHelper (this);
private DrawerLayout mDrawerLayout;
TextView textViewSub,textView3;
Typeface tf1,tf2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView=(ListView)findViewById(R.id.list);
File database=getApplicationContext().getDatabasePath(db.DBNAME);
if(false==database.exists()) {
db.getDatabaseName();
if (copyDatabase(this)) {
} else {
return;
}
}
ArrayList listTitles=db.getAllTitles();
ArrayList listTitle=db.getAllQuotes();
ArrayAdapter arrayAdapter=new ArrayAdapter(this,R.layout.row_itm,R.id.textView3,listTitles);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String az=String.valueOf(parent.getItemAtPosition(position));
Intent intent=new Intent(MainActivity.this,ShowActivity.class);
intent.putExtra("p",az);
startActivity(intent);
}
});
mDrawerLayout = findViewById(R.id.drawer);
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
mDrawerLayout.closeDrawers();
return true;
}
});
mDrawerLayout.addDrawerListener(
new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
}
@Override
public void onDrawerClosed(View drawerView) {
}
@Override
public void onDrawerStateChanged(int newState) {
}
}
);
textViewSub=(TextView)findViewById(R.id.textViewSub);
textView3=(TextView)findViewById(R.id.textView3);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionbar = getSupportActionBar();
actionbar.setDisplayHomeAsUpEnabled(true);
actionbar.setHomeAsUpIndicator(R.drawable.para);
final String[] itm=getResources().getStringArray(R.array.index);
(this,R.layout.row_itm,R.id.textView3,itm);
tf1=Typeface.createFromAsset(getAssets(),"orangeblossoms.ttf");
textViewSub.setTypeface(tf1);
}
private boolean copyDatabase(Context context) {
try {
InputStream inputStream=context.getAssets().open(db.DBNAME);
String outFileName=db.DBLOCATION+db.DBNAME;
OutputStream outputStream=new FileOutputStream(outFileName);
byte[] buff=new byte[1024];
int lenght=0;
while ((lenght=inputStream.read(buff))>0){
outputStream.write(buff,0,lenght);
}
outputStream.flush();
outputStream.close();
return true;
} catch (Exception e) {
return false;
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
mDrawerLayout.openDrawer(GravityCompat.START);
return true;
}
return super.onOptionsItemSelected(item);
}
public void error(View view) {
finish();
}
public void favo(View view) {
}
}