Thursday 30 March 2017

How to  the Data locally in Android Studio.

[
{"ID":1,"name":"A"},
{"ID":2,"name":"B"},
{"ID":3,"name":"C"},
{"ID":4,"name":"D"},
{"ID":5,"name":"E"},
{"ID":6,"name":"F"},
{"ID":7,"name":"G"}
]


First we need to add Volley Library to our project.
compile 'com.mcxiaoke.volley:library-aar:1.0.0'

Creating New Project.
Open android studio and create a new project.


File => New => New Project => Configure your new project => Select the form factor yours app will run on => Add an Activity to Mobile => Customize the Activity => Finish.


Create the Java file in project.
Open app => main => src = MainActivity.java


              TimeAdapter timeAdapter;
              final ArrayList<TimeItem> timeArrayList = new ArrayList<>();

              DataBaseHandler handler = new DataBaseHandler(this);
              NetworkUtils utils = new NetworkUtils(MainActivity.this);

                if (handler.getMenuCount() == 0 && utils.isConnectingToInternet()) {
                    //Execute the AsyncTask
                    customDialog();
              } else {
                    ListView popListView = (ListView) findViewById(R.id.popList);
                    final ArrayList<TimeItem> menuList = handler.getAllMenu();
                    timeAdapter = new TimeAdapter(MainActivity.this, menuList);
                    popListView.setAdapter(timeAdapter);
                }

            }
        });

 private void customDialog() {
        String GET_URL = "http://clientdemo.mayaitsolution.com/upload/getallmenus";
        StringRequest stringRequest = new StringRequest(Request.Method.GET, GET_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONArray jsonArray = new JSONArray(response);
                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject jsonObject = jsonArray.getJSONObject(i);
                                String mID=jsonObject.getString("ID");
                                String menu_id=jsonObject.getString("ID");
                                String mDay = jsonObject.getString("name");
                                TimeItem timeItem = new TimeItem();
                                timeItem.setDay(mDay);

                                //set the data in database
                                handler.addMenu(timeItem);


                                //deleiveryEditText.setText(mDelivery);
                                timeAdapter = new TimeAdapter(MainActivity.this, timeArrayList);
                                // set the adapter object to the Recyclerview
                                timeAdapter.notifyDataSetChanged();
                                popListView.setAdapter(timeAdapter);


                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });

        RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
        requestQueue.add(stringRequest);

    }

Create Xml file in project.   
Open => app => res => layout - activity_main.xml.


  <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <ListView
                android:id="@+id/popList"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
            </ListView>
        </LinearLayout>


Create Xml file in project.     
Open => app => res => layout - time_row_item.xml.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="start|center"
        android:orientation="horizontal"
        android:padding="12dp">

        <TextView
            android:id="@+id/txtTime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="22dp"
            android:text="Day"
            android:textColor="#000"
            android:textSize="16dp"
            android:textStyle="bold" />
    </LinearLayout>

</LinearLayout>



Create the Java file in project.
Open app => main => src = TimeAdapter.java


public class TimeAdapter extends BaseAdapter {
    ArrayList<TimeItem> items = new ArrayList<TimeItem>();
    Activity con;

    public TimeAdapter(Activity con, ArrayList<TimeItem> items) {
        this.con = con;
        this.items = items;
    }

    @Override
    public int getCount() {
        return items.size();
    }

    @Override
    public Object getItem(int pos) {
        return items.get(pos);
    }

    @Override
    public long getItemId(int pos) {
        return pos;
    }

    @Override
    public View getView(final int pos, View view, ViewGroup viewGroup) {
        LayoutInflater inflator = con.getLayoutInflater();
        View listItem = inflator.inflate(R.layout.time_row_item, null, true);

        //TextView
        TextView dayTextView = (TextView) listItem.findViewById(R.id.txtTime);

        //Typeface childFont = Typeface.createFromAsset(listItem.getContext().getAssets(),"fonts/Titillium-Regular.otf");
        //dayTextView.setTypeface(childFont);

        //Get and set the data here
        dayTextView.setText(items.get(pos).getDay());
        return listItem;
    }
}


Create the Java file in project.
Open app => main => src = TimeItem.java

public class TimeItem {
    String day;

    public String getDay() {
        return day;
    }

    public void setDay(String day) {
        this.day = day;
    }
}


Create the Java file in project.
Open app => main => src = NetworkUtils.java


public class NetworkUtils {

    private Context context;

    public NetworkUtils(Context context) {
        this.context = context;
    }

    public boolean isConnectingToInternet() {
        ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
                for (int i = 0; i < info.length; i++)
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                        return true;
                    }

        }
        return false;
    }

}


Create the Java file in project.
Open app => main => src = Listener.java


interface Listener {
    //Main image
    public void addItem(TimeItem city);
    public ArrayList<TimeItem> getAllItem();
    public int getItemCount();

    //Main Menu List
    public void addMenu(TimeItem city);
    public ArrayList<TimeItem> getAllMenu();
    public int getMenuCount();




    // Category
    public void SaveJsonSubCat(String data, JSONArray jsonObject);
    public boolean isItemAvailable(String url);
    JSONArray GetSubCat(String data);


    // Gallery Image
    public void SaveImage(String data, JSONArray jsonObject);
    public boolean isItemImage(String url);
    JSONArray GetImage(String data);

}




Create the Java file in project.
Open app => main => src = DataBaseHandler  .java


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import com.easy.cube.customitem.TimeItem;

import org.json.JSONArray;

import java.util.ArrayList;

/**
 * Created by Shobhna on 16-Mar-16.
 */

public class DataBaseHandler  extends SQLiteOpenHelper implements Listener {
    private static final int DB_VERSION = 1;
    private static final String DB_NAME = "Database.db";
    //Main category Activity
    public static final String TABLE_NAME = "item_table";

    public static final String TABLE_MENU = "item_list";
    public static final String TABLE_ALL_IMAGE = "all_image";


    //SubCatgory Activity
    public static final String TABLE_FOOD_ForJson = "cate_menu";
    public static final String TABLE_IMAGE_ForJson = "cate_image";

    private static final String KEY_ID = "_id";
    private static final String KEY_MENU = "_name";
    private static final String KEY_MENU_ID = "_menu_id";
    private static final String KEY_ALL_IMAGE = "url_image";
    private static final String KEY_IMAGE = "_image";


    ///************************START*********************************//
    //All Catogory Table
    String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_IMAGE + " TEXT)";
    String CREATE_TABLE_MENU = "CREATE TABLE " + TABLE_MENU + " (" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_MENU + " TEXT,"+KEY_MENU_ID +" TEXT)";
    String CREATE_TABLE_ALLIMAGE = "CREATE TABLE " + TABLE_ALL_IMAGE + " (" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_ALL_IMAGE + " TEXT)";



    //SubCatogry Table
    String CREATE_FOODForJson = "CREATE TABLE " + TABLE_FOOD_ForJson + " (" + "url" + " TEXT, " + " array " + " TEXT)";

    String CREATE_IMAGEForJson = "CREATE TABLE " + TABLE_IMAGE_ForJson + " (" + "url_image" + " TEXT, " + " array_image" + " TEXT)";



    //Main Category
    String DROP_TABLE = "DROP TABLE IF EXISTS " + TABLE_NAME;
    String DROP_TABLE_MENU = "DROP TABLE IF EXISTS " + TABLE_MENU;
    String DROP_TABLE_ALLIMAGE = "DROP TABLE IF EXISTS " + TABLE_ALL_IMAGE;

    String DROP_TABLE_FOOD_ForJson = "DROP TABLE IF EXISTS " + TABLE_FOOD_ForJson;

    String DROP_TABLE_IMAGE_ForJson = "DROP TABLE IF EXISTS " + TABLE_IMAGE_ForJson;








    public DataBaseHandler(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //Main Catgory
        db.execSQL(CREATE_TABLE);
        db.execSQL(CREATE_TABLE_MENU);
        db.execSQL(CREATE_TABLE_ALLIMAGE);
        db.execSQL(CREATE_FOODForJson);
        db.execSQL(CREATE_IMAGEForJson);





    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //Main Catgory
        db.execSQL(DROP_TABLE);
        db.execSQL(DROP_TABLE_MENU);
        db.execSQL(DROP_TABLE_ALLIMAGE);


        //Catogry
        db.execSQL(DROP_TABLE_FOOD_ForJson);
        db.execSQL(DROP_TABLE_IMAGE_ForJson);

        onCreate(db);
    }


    //Get All Image
    @Override
    public void addItem(TimeItem item) {
        SQLiteDatabase db = this.getWritableDatabase();
        try {
            ContentValues values = new ContentValues();
            values.put(KEY_IMAGE, item.getImage_url());
            db.insert(TABLE_NAME, null, values);
            db.close();
        } catch (Exception e) {
            Log.e("problem", e + "");
        }
    }

    @Override
    public ArrayList<TimeItem> getAllItem() {
        SQLiteDatabase db = this.getReadableDatabase();
        ArrayList<TimeItem> itemList = null;
        try {
            itemList = new ArrayList<TimeItem>();
            String QUERY = "SELECT * FROM " + TABLE_NAME;
            Cursor cursor = db.rawQuery(QUERY, null);
            if (cursor.moveToFirst()) {
                do {
                    TimeItem item = new TimeItem();
                    item.setId(cursor.getString(0));
                    item.setImage_url(cursor.getString(1));
                    itemList.add(item);
                } while (cursor.moveToNext());
            }
            db.close();
        } catch (Exception e) {
            Log.e("error", e + "");
        }
        return itemList;
    }

    @Override
    public int getItemCount() {
        int num = 0;
        SQLiteDatabase db = this.getReadableDatabase();
        try {
            String QUERY = "SELECT * FROM " + TABLE_NAME;
            Cursor cursor = db.rawQuery(QUERY, null);
            num = cursor.getCount();
            db.close();
            return num;
        } catch (Exception e) {
            Log.e("error", e + "");
        }
        return 0;
    }

    ///////////////////////////////////
    //////////////////////////////////
    //Get All Menu
    @Override
    public void addMenu(TimeItem item) {
        SQLiteDatabase db = this.getWritableDatabase();
        try {
            ContentValues values = new ContentValues();
            values.put(KEY_MENU, item.getDay());
            values.put(KEY_MENU_ID, item.getMenu_id());
            db.insert(TABLE_MENU, null, values);
            db.close();
        } catch (Exception e) {
            Log.e("problem", e + "");
        }
    }


    @Override
    public ArrayList<TimeItem> getAllMenu() {
        SQLiteDatabase db = this.getReadableDatabase();
        ArrayList<TimeItem> itemList = null;
        try {
            itemList = new ArrayList<TimeItem>();
            String QUERY = "SELECT * FROM " + TABLE_MENU;
            Cursor cursor = db.rawQuery(QUERY, null);
            if (cursor.moveToFirst()) {
                do {
                    TimeItem item = new TimeItem();
                    item.setId(cursor.getString(0));
                    item.setDay(cursor.getString(1));
                    item.setMenu_id(cursor.getString(2));
                    itemList.add(item);
                } while (cursor.moveToNext());
            }
            db.close();
        } catch (Exception e) {
            Log.e("error", e + "");
        }
        return itemList;
    }

    @Override
    public int getMenuCount() {
        int num = 0;
        SQLiteDatabase db = this.getReadableDatabase();
        try {
            String QUERY = "SELECT * FROM " + TABLE_MENU;
            Cursor cursor = db.rawQuery(QUERY, null);
            num = cursor.getCount();
            db.close();
            return num;
        } catch (Exception e) {
            Log.e("error", e + "");
        }
        return 0;
    }



    //////////////////
    //////////////
    ////////////end

    //All SubCatory Table
    //Food catogory
    ///////////////////////////////////////////////////////
    //////////////////////
    @Override
    public void SaveJsonSubCat(String data, JSONArray jsonObject) {
        SQLiteDatabase db = this.getWritableDatabase();
        try {
            ContentValues values = new ContentValues();
            values.put("url", data);
            values.put("array", jsonObject.toString());
            db.insert(TABLE_FOOD_ForJson, null, values);
            db.close();
        } catch (Exception e) {
            Log.e("problem", e + "");
        }
    }

    @Override
    public JSONArray GetSubCat(String data) {
        SQLiteDatabase db = this.getReadableDatabase();
        try {
            //  String QUERY = "SELECT * FROM " + TABLE_FOOD_ForJson;
            Cursor cursor = db.rawQuery("SELECT * FROM "+TABLE_FOOD_ForJson+" WHERE url = '"+data+"'", null);
            if (cursor.getCount()> 0){
                while (cursor.moveToNext()){
                    if (cursor.getString(cursor.getColumnIndex("url")).equals(data)){
                        JSONArray obj = new JSONArray(cursor.getString(cursor.getColumnIndex("array")));
                        db.close();
                        return obj;
                    }
                }
            }
            db.close();
        } catch (Exception e) {
            Log.e("error", e + "");
        }
        return null;
    }

    @Override
    public boolean isItemAvailable(String url) {

        SQLiteDatabase db = this.getReadableDatabase();
        try {
            // String QUERY = "SELECT * FROM " + TABLE_FOOD_ForJson;
            Cursor cursor = db.rawQuery("SELECT * FROM "+TABLE_FOOD_ForJson,null);//+" WHERE url = '"+url+"'", null);
            if (cursor.getCount()> 0){
                while (cursor.moveToNext()){
                    if (cursor.getString(cursor.getColumnIndex("url")).equals(url)){
                        db.close();
                        return true;
                    }
                }
            }
            db.close();
        } catch (Exception e) {
            Log.e("error", e + "");
        }
        return false;
    }

//**************************************************************************End*****************************************//
    //////Gallary Image////////////////
    /////save images///////


    @Override
    public void SaveImage(String data, JSONArray jsonObject) {
        SQLiteDatabase db = this.getWritableDatabase();
        try {
            ContentValues values = new ContentValues();
            values.put("url_image", data);
            values.put("array_image", jsonObject.toString());
            db.insert(TABLE_IMAGE_ForJson, null, values);
            db.close();
        } catch (Exception e) {
            Log.e("problem", e + "");
        }
    }

    @Override
    public JSONArray GetImage(String data) {
        SQLiteDatabase db = this.getReadableDatabase();
        try {
            //  String QUERY = "SELECT * FROM " + TABLE_FOOD_ForJson;
            Cursor cursor = db.rawQuery("SELECT * FROM "+TABLE_IMAGE_ForJson+" WHERE url_image = '"+data+"'", null);
            if (cursor.getCount()> 0){
                while (cursor.moveToNext()){
                    if (cursor.getString(cursor.getColumnIndex("url_image")).equals(data)){
                        JSONArray obj = new JSONArray(cursor.getString(cursor.getColumnIndex("array_image")));
                        db.close();
                        return obj;
                    }
                }
            }
            db.close();
        } catch (Exception e) {
            Log.e("error", e + "");
        }
        return null;
    }

    @Override
    public boolean isItemImage(String url) {

        SQLiteDatabase db = this.getReadableDatabase();
        try {
            // String QUERY = "SELECT * FROM " + TABLE_FOOD_ForJson;
            Cursor cursor = db.rawQuery("SELECT * FROM "+TABLE_IMAGE_ForJson,null);//+" WHERE url = '"+url+"'", null);
            if (cursor.getCount()> 0){
                while (cursor.moveToNext()){
                    if (cursor.getString(cursor.getColumnIndex("url_image")).equals(url)){
                        db.close();
                        return true;
                    }
                }
            }
            db.close();
        } catch (Exception e) {
            Log.e("error", e + "");
        }
        return false;
    }

}




Add Internet permission in your manifest

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>






No comments:

Post a Comment