sql >> データベース >  >> RDS >> SQLite

SQLite Listview onclickは、dbをフィルターして開き、新しいアクティビティを生成します

    私が言ったように、あなたはコードで多くの修正をする必要があります、しかし現在あなたは以下の変更によってあなたのコードを実行させることができます:

    最初に、DBHandlerChapterクラスでgetListChapterメソッドを以下のように変更します

    public List<defineBybeldbHoofstuk> getListHoofstuk(String boek_id_vanaf_BybelActivityBoek)
    {
    
       defineBybeldbHoofstuk defineBybeldbHoofstuk = null;
       List<defineBybeldbHoofstuk> defineBybeldbHoofstukList = new ArrayList<>();
       opendatabase();
       Cursor cursor = mDatabase.rawQuery("SELECT * FROM table_hoofstuk WHERE " + COLUMN_HOOFSTUK_BOEK_ID + " = '" + boek_id_vanaf_BybelActivityBoek + "'", null);/*(die tabel se naam)*/
    
       cursor.moveToFirst();
    
       while (!cursor.isAfterLast()){
           defineBybeldbHoofstuk = new defineBybeldbHoofstuk(cursor.getInt(0), cursor.getInt(1),cursor.getInt(2));
           defineBybeldbHoofstukList.add(defineBybeldbHoofstuk);
           cursor.moveToNext();
       }
    
       cursor.close();
       closeDatabase();
       return defineBybeldbHoofstukList;
    }
    

    BybelActivityChapterアクティビティを以下で変更します

    public class BybelActivityHoofstuk extends Activity
    {
        private ListView listviewHoofstuk;
        private customAdapterHoofstuktext adapter_customAdapterHoofstuktext;
        private List<defineBybeldbHoofstuk> defineBybeldbHoofstukList;
        private DBHandlerHoofstuk DBHandlerHoofstuk_DBHelper;
        private SQLiteDatabase mDatabase;
        ArrayList<HashMap<String, String>> HoofstukList;
    
        //Boek id
        String boek_id_vanaf_BybelActivityBoek;
    
        @Override
        public void onCreate (Bundle savedInstanceState)
        {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_bybel_hoofstuk);
    
                listviewHoofstuk = (ListView) findViewById(R.id.BybelHoofstukListView);
                DBHandlerHoofstuk_DBHelper = new DBHandlerHoofstuk(this);
    
    
                //Check exists database
                File Database = getApplicationContext().getDatabasePath(DBHandlerBoek.DBNAME);
            if(false == Database.exists()){
                    DBHandlerBoek_DBHelperBoek.getReadableDatabase();
    
                    //Copy DB
                    if (DBHandlerBoek.copyDatabase(this)){
                            Toast.makeText(this, "Databasis Suksesvol", Toast.LENGTH_LONG).show();
                    }else {
                            Toast.makeText(this, "Databasis Probleem", Toast.LENGTH_LONG).show();
                            return;
                    }
                }
                DBHandlerHoofstuk_DBHelper.getReadableDatabase();
    
                //Get boek id
                Intent boekIntent = getIntent();
                boek_id_vanaf_BybelActivityBoek = boekIntent.getStringExtra("boek_id");
    
                //hashmap for listview
                HoofstukList = new ArrayList<HashMap<String, String>>();
    
                //Get bybel list in db when db exists
                defineBybeldbHoofstukList = DBHandlerHoofstuk_DBHelper.getListHoofstuk(boek_id_vanaf_BybelActivityBoek);
    
            //Init adapter
            adapter_customAdapterHoofstuktext = new customAdapterHoofstuktext(this,defineBybeldbHoofstukList);
    
            //Set adapter for listview
                listviewHoofstuk.setAdapter(adapter_customAdapterHoofstuktext);
    
    
            listviewHoofstuk.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener(){
                @Override
                public void onItemClick (AdapterView<?> arg0, View view, int arg2, long arg3){
                        //on selecting single track get vers text
                        Intent hoofstukid = new Intent(getApplicationContext(),BybelActivityVers.class);
                        //to get vers hoofstuk_id is needed
                    String hoofstuk_id = ((TextView)view.findViewById(R.id.hoofstuk_id)).getText().toString();
    
                        hoofstukid.putExtra("hoofstuk_id", hoofstuk_id);
    
                        startActivity(hoofstukid);
                }
            });
        }
    }
    



    1. SQLite式ベースのインデックス

    2. SQL Server 2016 –ストレッチデータベースの概要

    3. OracleのDD/mm/yyyy形式で現在の日付をDATEフィールドに挿入する方法

    4. すべてのDBAが知っておくべき4つの主要なデータベース監視アクティビティ