Monday, 20 January 2014

Android SQLite data to CSV format

SQLite to CSV

Its easy to export your current SQLite data into Excel or CSV format.

This can be achieved by simple code, which includes csv text file format, which we need to write through code.

CSV format works on the basis of comma and new line.

The below code includes.
1. File creation
2. Writing data to file
3. Fetching data from SQLite & writing in csv format.

You can modify your format however you want, keeping in your mind about commas.

Call this method & pass your file & directory path.



private Boolean backupDatabaseCSV(String outFileName) {
    MyLog.d(TAG, "backupDatabaseCSV");
    Boolean returnCode = false;
    int i = 0;
    String csvHeader = "";
    String csvValues = "";
    for (i = 0; i < GC.CURCOND_COLUMN_NAMES.length; i++) {
        if (csvHeader.length() > 0) {
            csvHeader += ",";
        }
        csvHeader += "\"" + GC.CURCOND_COLUMN_NAMES[i] + "\"";
    }

    csvHeader += "\n";
    MyLog.d(TAG, "header=" + csvHeader);
    dbAdapter.open();
    try {
        File outFile = new File(outFileName);
        FileWriter fileWriter = new FileWriter(outFile);
        BufferedWriter out = new BufferedWriter(fileWriter);
        Cursor cursor = dbAdapter.getAllRows();
        if (cursor != null) {
            out.write(csvHeader);
            while (cursor.moveToNext()) {
                csvValues = Long.toString(cursor.getLong(0)) + ",";
                csvValues += Double.toString(cursor.getDouble(1))
                        + ",";
                csvValues += Double.toString(cursor.getDouble(2))
                        + ",";
                csvValues += "\"" + cursor.getString(3) + "\",";
                csvValues += Double.toString(cursor.getDouble(4))
                        + ",";
                csvValues += Double.toString(cursor.getDouble(5))
                        + ",";
                csvValues += "\"" + cursor.getString(6) + "\",";
                csvValues += Double.toString(cursor.getDouble(7))
                        + ",";
                csvValues += Double.toString(cursor.getDouble(8))
                        + ",";
                csvValues += Double.toString(cursor.getDouble(9))
                        + "\n";
                out.write(csvValues);
            }
            cursor.close();
        }
        out.close();
        returnCode = true;
    } catch (IOException e) {
        returnCode = false;
        MyLog.d(TAG, "IOException: " + e.getMessage());
    }
    dbAdapter.close();
    return returnCode;
}

Enjoy converting SQLite to CSV.

Saturday, 18 January 2014

Andriod Development Multi screen support

As Android is a big fragments and also there are number of manufactures, which results into number of screens, which varies from manufactures to manufactures and device to device. Its the responsibility of Android developer to his app responsive, here is the collection of drawable folders which are specific to support particular screens.

Here is the demonstration to how to develop multi screen application for your project.




Few of the drawable folders are as follows

  1. drawable
  2. drawable-ldpi
  3. drawable-mdpi
  4. drawable-hdpi
  5. drawable-xhdpi
  6. drawable-xxhdpi
  7. drawable-large-mdpi
  8. drawable-large-hdpi
  9. drawable-xlarge-mdpi
  10. drawable-xlarge-hdpi

drawable
Common image folder to support all screens


drawable-ldpi
for small screens


drawable-mdpi
for medium screen phones


drawable-hdpi
for high definition screen phones


drawable-xhdpi
for very high definition screen phones


drawable-xxhdpi
for very high definition devices


drawable-large-mdpi
for 7" tablets


drawable-large-hdpi
for 7" tablets (Specially for Nexus7)


drawable-xlarge-mdpi
for 10" tablets

drawable-xlarge-hdpi
for 10" tables high resolution

so keep images in each folder & check what your device supports, happy designing. 

        Friday, 17 January 2014

        Android Multiscreen support Layout folders

        Being an Android developer one should know the different layout folders.
        Layouts play an important role in UI concept of Android. 

        Here are the few layouts folders which are used to support different screen sizes like

        1. Small Screen phones
        2. Medium Screen phones
        3. Large Screen Phones
        4. 7" Tablets
        5. 10 " Tablets


        ·         res/layout/ 

        for Phones 



        ·         res/layout-port

        for Phones only portrait screen



        ·         res/layout-land

        for Phones only Landscape screen



        ·         res/layout-sw600dp/

        for 7" Tablets



        ·         res/layout-sw600dp-port/

        for 7" Tablets only portrait



        ·         res/layout-sw600dp-land/

        for 7" Tablets only landscape



        ·         res/layout-sw720dp/

        for 10" Tablets



        ·         res/layout-sw720dp-port/

        for 10" Tablets only portrait



        ·         res/layout-sw720dp-land/

        for 10" Tablets only landscape



        ·         res/layout-xlarge/

        for pre 3.2" Tablets 




        ·         res/layout-xlarge-port/

        for pre 3.2" Tablets to support portrait only




        ·         res/layout-xlarge-land/

        for pre 3.2" Tablets to support landscapre only




        ·         res/layout-small/

        for small screens 




        ·         res/layout-small-port/

        for small screens to support portrait screens only 




        ·         res/layout-small-land/

        for small screens to support landscape screens only 




        ·         res/layout-large/

        for large screens 



        ·         res/layout-large-port/

        for large screens to support portrait screens only 



        ·         res/layout-large-land/
        for large screens to support landscape screens only