Question

I want to display column names with column values in the Listview using cursor. My present code shows only the column values.

public void openAndQueryDatabase() {

    db = openOrCreateDatabase( "mydatabase.db", SQLiteDatabase.CREATE_IF_NECESSARY , null ); 

    Cursor cursor = db.rawQuery("select * from "+ table + " where name='"+ name + "'",  null);


    int count = cursor.getColumnCount();

    if (cursor!=null )
    { 

        if  (cursor.moveToFirst())
        {
            do 
            {
                 for (int i =0 ; i< count; i++)
                {
                String data = cursor.getString(i);
                details.add(data);
                }
            } 
            while (cursor.moveToNext()); 
        } 

         }
}
Was it helpful?

Solution

In this case you should use hashmap

for (int i =0 ; i< count; i++)
{
    String data = cursor.getString(i);
    String column_name = cursor.getColumnName(i);

    HashMap<String,String> map = new HashMap<String,String>();
    map.put("column_value",data);
    map.put("column_name",column_name);

    details.add(map); //change the type of details from ArrayList<String> to arrayList<HashMap<String,String>>
}

OTHER TIPS

Use getColumnName(int columnIndex) to get the name of the row for a given index.

Use this.

 for (int i =0 ; i< count; i++)
  {
      String data = cursor.getString(i);
      String column_name = cursor.getColumName(i);
      details.add(data);
  }

Simply retrieve String array with names like that:

cursor.getColumnNames()

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top