SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite Listview onclick filtri db per aprire il risultato in una nuova attività

Come ho già detto, devi apportare molte modifiche al codice, ma attualmente puoi eseguire il tuo codice seguendo le modifiche seguenti:

Prima modifica il metodo getListChapter come di seguito nella classe DBHandlerChapter

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;
}

Ora cambia la tua attività di BybelActivityChapter in basso

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