簡體   English   中英

顯示來自sqlDatabase的多個表

[英]Showing multiple tables from sqlDatabase

我正在開發應用程序報價,並且我正在使用本地數據庫導入報價。
這是sqldatabase中制作的4個表。

在此處輸入圖片說明

在這里合並表數據庫

我的表名是“ be.db”,我放在android studio的資產文件夾中

正如您在圖片中看到的那樣,標題“ Life”有多個引用,這是因為在應用程序中,當我想單擊項目“ life”時,我希望它向我顯示第一個引用,然后在此處滑動到另一個引用該應用程序的

應用程序首頁

我不知道如何從sqldatabase導入多個或3個表的問題,我只知道如何導入一個,因為您可以在下面在Android Studio中的類“ DatabaseHelper”中看到以下代碼:

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) {
}
}

先生,

它應該使用String數組或類/對象來檢索結果,而不僅僅是字符串。

您的SQL調用返回結果集游標,而不是String。 概念上是錯誤的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM