vendredi 12 juin 2015

Getting order by given order android SQlite

i have an book mark option in my application, here to sort in SQLITE by "order by" using selected set of column values (ID) like: order by (ID=1,5,4,3) so I would get record 1, 5, 4, 3 in that order out,

but it show id=1,2,3,4,5 in listview please any one help me..

databasehelper activity

Cursor curs = qb1.query(db, sqlSelect1, strQuery1, null,null, null, strOrder1);

        if(curs!=null)

        {
            curs.moveToFirst();

            if(curs.getCount()>=1)

            {

                do 

{

                strvalues+=""+curs.getString(curs.getColumnIndex(KEY_NAME))+",";


                }

while (curs.moveToNext());

                if(strvalues.length()>=1)

                {

                    strvalues+="-1";

                    String [] sqlSelect = {"0 _id", "TB","Version","Book","Chapter","NKJ"};

                    String sqlTables = "hindibible";

                    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

                    qb.setTables(sqlTables);

                    String strOrderbook="Book" + " desc";



                    StringBuilder strQuery = new StringBuilder();

                    strQuery.append("ID IN (" +strvalues + ")"); 

                    StringBuilder strOrderBy = new StringBuilder();

                    strOrderBy.append(" CASE  ID ");

                    String [] arrIDs = strvalues.split(",");

                    for(int i=0;i<arrIDs.length;i++)

                    { 

                        strOrderBy.append("  WHEN " + arrIDs[i] + "  THEN " + arrIDs[i]);
                    }

                    strOrderBy.append(" END");

                    Cursor bible = qb.query(db, sqlSelect, strQuery.toString(), null,null, null, strOrderBy.toString());

                    bible.moveToFirst();

                    return bible;
                }

            }

            else

            {

            }
        }
        else
        {

        }
    }catch (Exception e) {
        Log.d("setBookMark",e.toString());
    }
    return null;

}

In listActivity:

Cursor cursor=db.getBible(ibook, chapter, book);

            gcursor=cursor;

            cursor=db.getBookMarks();

if (cursor.moveToFirst()) { do {

                        String strcursor=cursor.getString(cursor.getColumnIndex("NKJ"));
                        strcursor.replace("<br>","");
                        list.add(strcursor);

                        String strversenum=cursor.getString(cursor.getColumnIndex("Version"));
                        strcursor.replace("<br>","");
                        versenum.add(strversenum);




                        short jbook=cursor.getShort(cursor.getColumnIndex("Book"));
                        short ichap=cursor.getShort(cursor.getColumnIndex("Chapter"));
                        short ivers=cursor.getShort(cursor.getColumnIndex("Version"));
                        String strdata=mathstxt[jbook-1]+" "+ichap+"  "+ivers;
                        list_chapter.add(strdata);

                    } while (cursor.moveToNext());
                }

this.m_adapter = new bookmark_Adapter(this,list,list_date,list_chapter,versenum);

Aucun commentaire:

Enregistrer un commentaire