SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite Listview onclick filtros db para abrir o resultado em nova atividade


Como mencionei, você precisa fazer muitas modificações no código, mas atualmente você pode fazer seu código rodar com as alterações abaixo:

Primeiro altere seu método getListChapter conforme abaixo na 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;
}

Agora altere sua atividade BybelActivityChapter abaixo
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);
            }
        });
    }
}