Sereen Shalby
Sereen Shalby

Reputation: 225

how to make insert in sqlite database only once ? and stop inserting even if i return to the activity again?

I have an android file in which i retrieve JSON data from server and then i insert it into sqlite database and then display it into listView customAdapter.

But every time i go to another activity and return to the main one , it keeps inserting in the table again .. how can i prevent this??

here is the code :

package com.example.mvctest;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


import sereen.sql.Details_info;
import sereen.sql.Info;
import sereen.sql.InfoServicesNew;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class PenddingOrders extends Activity {
ArrayList<Info> info=new ArrayList<Info>(); 

    ListView list;
    ProgressDialog pd;

    private String defValue = "N/A";

    InfoServicesNew databaseHelper;
     String name=InfoServicesNew.DB_TABLE_NAME;
     String name2=InfoServicesNew.DB_TABLE_NAME5;
    static int img=R.drawable.ex2;
    String data;
    Intent o;
    int position;
    Object object;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pendding_orders);
        setTitle("الطلبات الجديدة");
        databaseHelper = new InfoServicesNew(this);



        list=(ListView)findViewById(R.id.listView1);
        pd = new ProgressDialog(this);

     new asy().execute("http://192.168.1.113/JsonRoot/transitions/Pendding_orders.json");
//      new asy().execute("http://jsonblob.com/api/jsonBlob/53021f22e4b0f9ce1677329a");






    } 


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.pendding_orders, menu);
        return true;
    }
    public class asy extends AsyncTask<String, String, ArrayList<Info>>
    {



        @Override
        protected ArrayList<Info> doInBackground(String... params) {
            // TODO Auto-generated method stub

             //activity is defined as a global variable in your AsyncTask

            try {

                HttpClient hc = new DefaultHttpClient();
                HttpGet hg = new HttpGet(params[0]);
                HttpResponse hr = hc.execute(hg);
                HttpEntity he = hr.getEntity();
                data = EntityUtils.toString(he);
                Log.i("data", data);

            } 
            catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
            catch (IOException e) 
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            ArrayList<Info> sereenlist = new ArrayList<Info>();
            sereenlist = getJSONData(data);

            return sereenlist;



        }


        private ArrayList<Info> getJSONData(String data) {
            // TODO Auto-generated method stub

            String id = null;
            String item=null;
            String amount=null;
            String unit=null;
            String price=null;
            String total_price=null;

            ArrayList<Info> rs = null;


                try {

                JSONObject obj = new JSONObject(data);
                JSONArray finalObj = obj.optJSONArray("orders");

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

                    final String orderNumber = finalObj.optJSONObject(i).optString(
                            "order-number");
                    final String orderAmount = finalObj.optJSONObject(i).optString(
                            "order-amount");
                    final String date = finalObj.optJSONObject(i).optString(
                            "date");
                    final String client = finalObj.optJSONObject(i).optString(
                            "client");
                    final String upperLimit = finalObj.optJSONObject(i).optString(
                            "upper-limit");
                    final String debt = finalObj.optJSONObject(i).optString(
                            "debt");
                    JSONArray details = finalObj.getJSONObject(i).getJSONArray("details");

                    for(int j=0; j<details.length(); j++)
                    {
                         id = details.getJSONObject(j).optString("id");
                         item = details.getJSONObject(j).optString("item");
                         amount = details.getJSONObject(j).optString("amount");
                         unit = details.getJSONObject(j).optString("unit");
                         price = details.getJSONObject(j).optString("price");
                         total_price = details.getJSONObject(j).optString("total-price");
//                       Log.e("id", id);
//                       Log.e("item", item);
//                       Log.e("amount", amount);
//                       Log.e("unit", unit);
//                       Log.e("price", price);
//                       Log.e("total_price", total_price);

                        }

                    long id1=databaseHelper.insert(new Info(client,orderAmount,date ,orderNumber,upperLimit,debt,img),name);
                    databaseHelper.insert_details(new Details_info(id,item,amount ,unit,price,total_price,orderNumber),name2);


                }


                  rs = databaseHelper.selectAll(name,img);
                    databaseHelper.close();

                    Log.i("size", finalObj.length()+"");
            }//try end

            catch (JSONException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

                return rs;
        }



        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            pd.setTitle("fetching");
            pd.setMessage("waiting...");
            pd.show();
        }



        @Override//
        protected void onPostExecute(ArrayList<Info> result) {
            // TODO Auto-generated method stub
            ArrayList<Info> rs = null;
             rs = databaseHelper.selectAll(name,img);
             SetAdapterList(rs);
            //SetAdapterList(result);

            pd.dismiss();
        }


        private void SetAdapterList(ArrayList<Info> result) 
        {
            // TODO Auto-generated method stub



            CustomAdapter adapter=new CustomAdapter(getApplicationContext(), result);
            list.setAdapter(adapter);

            list.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                    // TODO Auto-generated method stub

                    Intent i=new Intent(PenddingOrders.this,Details.class);
                    int myId=arg2;

                    object = list.getItemAtPosition(arg2);
                    Info detail = (Info) object;

                    String client = detail.getClient();
                    String orderAmount = detail.getOrderAmount();
                    String date=detail.getdate();
                    String orderNumber=detail.getorderNumber();
                    String upperLimit=detail.getupperLimit();
                    String debt=detail.getdept();

//                  Log.e("value is ", client);
//                  Log.e("value is1 ", orderAmount);


                    i.putExtra("myid", ""+myId);
                    i.putExtra("client", ""+ client);
                    i.putExtra("orderAmount", ""+orderAmount);
                    i.putExtra("date", date);
                    i.putExtra("orderNumber", orderNumber);
                    i.putExtra("upperLimit", upperLimit);
                    i.putExtra("debt", debt);
                    startActivity(i);



                }
            });
//    
        }

    }

}

and here is my InfoServiceNew.java class :

package sereen.sql;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class InfoServicesNew extends SQLiteOpenHelper{

    private String KEY_ID = "ID";
    private String KEY_CLIENT = "CLIENT";
    private String KEY_ORDER_AMOUNT = "ORDERAMOUNT";
    private String KEY_DATE = "DATE";
    private String KEY_ORDER_NUMBER = "ORDERNUMBER";
    private String KEY_UPPER_LIMIT = "UPPERLIMIT";
    private String KEY_DEBT = "DEBT";

    private String KEY_ITEM_ID = "ITEMID";
    private String KEY_ITEM = "ITEM";
    private String KEY_AMOUNT = "AMOUNT";
    private String KEY_UNIT = "UNIT";
    private String KEY_PRICE = "PRICE";
    private String KEY_TOTAL_PRICE = "TOTALPRICE";


    private static String DB_NAME = "FUCHES";
    public static String DB_TABLE_NAME = "PENDDINGORDERS";
    public static String DB_TABLE_NAME2 = "APPROVEDORDERS";
    public static String DB_TABLE_NAME3 = "DENIEDORDERS";
    public static String DB_TABLE_NAME4 = "HISTORY";
    public static String DB_TABLE_NAME5 = "DETAILS";
    private static int DB_VERSION = 16;

    private static SQLiteDatabase database;
    public InfoServicesNew(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        database = getWritableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + DB_TABLE_NAME + " (" + KEY_ID
                + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_CLIENT+" TEXT,"  +
                KEY_ORDER_AMOUNT+" TEXT,"  +
                 KEY_DATE +" TEXT,"  + KEY_ORDER_NUMBER + " TEXT ," +
                 KEY_UPPER_LIMIT + " TEXT ,"+ KEY_DEBT +" TEXT );");
        db.execSQL("CREATE TABLE " + DB_TABLE_NAME2 + " (" + KEY_ID
                + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_CLIENT+" TEXT,"  +
                KEY_ORDER_AMOUNT+" TEXT,"  +
                 KEY_DATE +" TEXT,"  + KEY_ORDER_NUMBER + " TEXT ," +
                 KEY_UPPER_LIMIT + " TEXT ,"+ KEY_DEBT +" TEXT );");
        db.execSQL("CREATE TABLE " + DB_TABLE_NAME3 + " (" + KEY_ID
                + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_CLIENT+" TEXT,"  +
                KEY_ORDER_AMOUNT+" TEXT,"  +
                 KEY_DATE +" TEXT,"  + KEY_ORDER_NUMBER + " TEXT ," +
                 KEY_UPPER_LIMIT + " TEXT ,"+ KEY_DEBT +" TEXT );");
        db.execSQL("CREATE TABLE " + DB_TABLE_NAME4 + " (" + KEY_ID
                + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_CLIENT+" TEXT,"  +
                KEY_ORDER_AMOUNT+" TEXT,"  +
                 KEY_DATE +" TEXT,"  + KEY_ORDER_NUMBER + " TEXT ," +
                 KEY_UPPER_LIMIT + " TEXT ,"+ KEY_DEBT +" TEXT );");
        db.execSQL("CREATE TABLE " + DB_TABLE_NAME5 + " (" + KEY_ID
                + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_ITEM_ID+" TEXT,"  + KEY_ORDER_NUMBER+" TEXT,"  +
                KEY_ITEM+" TEXT,"  +
                KEY_AMOUNT +" TEXT,"  + KEY_UNIT + " TEXT ," +
                KEY_PRICE + " TEXT ,"+ KEY_TOTAL_PRICE +" TEXT );");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME);
        db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME2);
        db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME3);
        db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME4);
        db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME5);
        onCreate(db);
    }

    public ArrayList<Info> selectAll(String Db_name, int img) {
        String columns[] = new String[] { KEY_ID, KEY_CLIENT,KEY_ORDER_AMOUNT, KEY_DATE ,KEY_ORDER_NUMBER,KEY_UPPER_LIMIT,KEY_DEBT};
        Cursor c = database.query(Db_name, columns, null, null,null,null,null);

        int idIndex = c.getColumnIndex(KEY_ID);
        int clientIndex = c.getColumnIndex(KEY_CLIENT);
        int orderamountIndex = c.getColumnIndex(KEY_ORDER_AMOUNT);
        int dateIndex = c.getColumnIndex(KEY_DATE);
        int ordernumberIndex = c.getColumnIndex(KEY_ORDER_NUMBER);
        int upperlimitIndex = c.getColumnIndex(KEY_UPPER_LIMIT);
        int deptIndex = c.getColumnIndex(KEY_DEBT);
        ArrayList<Info> list = new ArrayList<Info>();
        if (c.moveToFirst()) {
            do {
                list.add(new Info(c.getInt(idIndex), c.getString(clientIndex), c.getString(orderamountIndex), c.getString(dateIndex),c.getString(ordernumberIndex),c.getString(upperlimitIndex),c.getString(deptIndex),img));
            } while (c.moveToNext());
        }
        return list;

    }
    public ArrayList<Details_info> selectAllDetails(String Db_name) {
        String columns[] = new String[] { KEY_ID, KEY_ITEM_ID,KEY_ORDER_NUMBER,KEY_ITEM, KEY_AMOUNT ,KEY_UNIT,KEY_PRICE,KEY_TOTAL_PRICE};
        Cursor c = database.query(Db_name, columns, null, null,null,null,null);

        int idIndex = c.getColumnIndex(KEY_ID);
        int itemidIndex = c.getColumnIndex(KEY_ITEM_ID);
        int ordernumberIndex = c.getColumnIndex(KEY_ORDER_NUMBER);
        int itemIndex = c.getColumnIndex(KEY_ITEM);
        int amountIndex = c.getColumnIndex(KEY_AMOUNT);
        int unitIndex = c.getColumnIndex(KEY_UNIT);
        int priceIndex = c.getColumnIndex(KEY_PRICE);
        int totalpriceIndex = c.getColumnIndex(KEY_TOTAL_PRICE);
        ArrayList<Details_info> list = new ArrayList<Details_info>();
        if (c.moveToFirst()) {
            do {
                list.add(new Details_info(c.getInt(idIndex), c.getString(itemidIndex), c.getString(ordernumberIndex), c.getString(itemIndex),c.getString(amountIndex),c.getString(unitIndex),c.getString(priceIndex),c.getString(totalpriceIndex)));
            } while (c.moveToNext());
        }
        return list;
    }


    public long insert(Info info, String DB_name) {
        ContentValues cv = new ContentValues();
        cv.put(KEY_CLIENT, info.getClient());
        cv.put(KEY_ORDER_AMOUNT, info.getOrderAmount());
        cv.put(KEY_DATE, info.getdate());
        cv.put(KEY_ORDER_NUMBER, info.getorderNumber());
        cv.put(KEY_UPPER_LIMIT, info.getupperLimit());
        cv.put(KEY_DEBT, info.getdept());

        return database.insert(DB_name, null, cv);
    }

    public long update(Info info,String DB_name) {
        ContentValues cv = new ContentValues();
        cv.put(KEY_CLIENT, info.getClient());
        cv.put(KEY_ORDER_AMOUNT, info.getOrderAmount());
        cv.put(KEY_DATE, info.getdate());
        cv.put(KEY_ORDER_NUMBER, info.getorderNumber());
        cv.put(KEY_UPPER_LIMIT, info.getupperLimit());
        cv.put(KEY_DEBT, info.getdept());
        return database.update(DB_name, cv,
                KEY_ID + " = " + info.getId(), null);
    }



    public long insert_details(Details_info detail, String name2) {
        // TODO Auto-generated method stub
        ContentValues cv = new ContentValues();
        cv.put(KEY_ITEM_ID, detail.getItemid());
        cv.put(KEY_ITEM , detail.getItem());
        cv.put(KEY_AMOUNT, detail.getAmount());
        cv.put(KEY_UNIT, detail.getUnit());
        cv.put(KEY_PRICE, detail.getPrice());
        cv.put(KEY_TOTAL_PRICE, detail.getTotalprice());
        cv.put(KEY_ORDER_NUMBER, detail.getOrdernumber());

        return database.insert(name2, null, cv);
    }
    public long update_details(Details_info detail,String DB_name) {
        ContentValues cv = new ContentValues();
        cv.put(KEY_ITEM_ID, detail.getItemid());
        cv.put(KEY_ITEM , detail.getItem());
        cv.put(KEY_AMOUNT, detail.getAmount());
        cv.put(KEY_UNIT, detail.getUnit());
        cv.put(KEY_PRICE, detail.getPrice());
        cv.put(KEY_TOTAL_PRICE, detail.getTotalprice());
        cv.put(KEY_ORDER_NUMBER, detail.getOrdernumber());
        return database.update(DB_name, cv,
                KEY_ID + " = " + detail.getId(), null);
    }
    public long delete_details(int id,String Db_name) {
        return database.delete(Db_name, KEY_ID + " = " + id, null);
    }

    public long delete(int id, String name2) {
        // TODO Auto-generated method stub
        return database.delete(name2, KEY_ID + " = " + id, null) ;



    }

}

Upvotes: 1

Views: 3370

Answers (2)

Lucifer
Lucifer

Reputation: 29632

Since you want to insert data one time as per the session, You can perform a check operation in following way,

if ( isDataLoaded )   // a boolean variable for checking
{
    rs = databaseHelper.selectAll(name,img);
    SetAdapterList(rs);
}
else
{
    //     new asy().execute("http://192.168.1.113/JsonRoot/transitions/Pendding_orders.json");
    new asy().execute("http://jsonblob.com/api/jsonBlob/53021f22e4b0f9ce1677329a");
}

Here is the complete working code:

public class PenddingOrders extends Activity {
    ArrayList<Info> info=new ArrayList<Info>(); 
    static boolean isDataLoaded = false;
    ListView list;
    ProgressDialog pd;
    private String defValue = "N/A";

    InfoServicesNew databaseHelper;
    String name=InfoServicesNew.DB_TABLE_NAME;
    String name2=InfoServicesNew.DB_TABLE_NAME5;
    static int img=R.drawable.ex2;
    String data;
    Intent o;
    int position;
    Object object;
    ArrayList<Info> rs = null;

    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pendding_orders);
        setTitle("الطلبات الجديدة");

        if ( databaseHelper == null )
        {
            databaseHelper = new InfoServicesNew(this);
        }

        System.out.println  ( "isDataLoaded:" + isDataLoaded );

        list = (ListView)findViewById(R.id.listView1);
        pd = new ProgressDialog(this);

        if ( isDataLoaded )
        {
            rs = databaseHelper.selectAll(name,img);
            SetAdapterList(rs);
        }
        else
        {
            //     new asy().execute("http://192.168.1.113/JsonRoot/transitions/Pendding_orders.json");
            new asy().execute("http://jsonblob.com/api/jsonBlob/53021f22e4b0f9ce1677329a");
        }
    } 

    private void SetAdapterList(ArrayList<Info> result) 
    {
        // TODO Auto-generated method stub
        CustomAdapter adapter=new CustomAdapter(getApplicationContext(), result);
        list.setAdapter(adapter);
        System.out.println ( "Size : " + list.getCount() );
        list.setOnItemClickListener(new OnItemClickListener() 
        {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) 
            {
                // TODO Auto-generated method stub

                Intent i=new Intent(PenddingOrders.this,Details.class);
                int myId=arg2;

                object = list.getItemAtPosition(arg2);
                Info detail = (Info) object;

                String client = detail.getClient();
                String orderAmount = detail.getOrderAmount();
                String date=detail.getdate();
                String orderNumber=detail.getorderNumber();
                String upperLimit=detail.getupperLimit();
                String debt=detail.getdept();

                i.putExtra("myid", ""+myId);
                i.putExtra("client", ""+ client);
                i.putExtra("orderAmount", ""+orderAmount);
                i.putExtra("date", date);
                i.putExtra("orderNumber", orderNumber);
                i.putExtra("upperLimit", upperLimit);
                i.putExtra("debt", debt);
                startActivity(i);
                finish();
            }
        });
        //    
    }

    public class asy extends AsyncTask<String, String, ArrayList<Info>>
    {
        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            pd.setTitle("fetching");
            pd.setMessage("waiting...");
            pd.show();
        }

        @Override
        protected ArrayList<Info> doInBackground(String... params) {
            // TODO Auto-generated method stub

            //activity is defined as a global variable in your AsyncTask

            try {

                HttpClient hc = new DefaultHttpClient();
                HttpGet hg = new HttpGet(params[0]);
                HttpResponse hr = hc.execute(hg);
                HttpEntity he = hr.getEntity();
                data = EntityUtils.toString(he);
                Log.i("data", data);

            } 
            catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
            catch (IOException e) 
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            ArrayList<Info> sereenlist = new ArrayList<Info>();
            sereenlist = getJSONData(data);

            return sereenlist;
        }


        private ArrayList<Info> getJSONData(String data) {
            // TODO Auto-generated method stub

            String id = null;
            String item=null;
            String amount=null;
            String unit=null;
            String price=null;
            String total_price=null;

            ArrayList<Info> rs = null;

            if ( isDataLoaded == false  )
            {
                try 
                {
                    JSONObject obj = new JSONObject(data);
                    JSONArray finalObj = obj.optJSONArray("orders");
                    for (int i = 0; i < finalObj.length(); i++) 
                    {

                        final String orderNumber = finalObj.optJSONObject(i).optString(
                                "order-number");
                        final String orderAmount = finalObj.optJSONObject(i).optString(
                                "order-amount");
                        final String date = finalObj.optJSONObject(i).optString(
                                "date");
                        final String client = finalObj.optJSONObject(i).optString(
                                "client");
                        final String upperLimit = finalObj.optJSONObject(i).optString(
                                "upper-limit");
                        final String debt = finalObj.optJSONObject(i).optString(
                                "debt");
                        JSONArray details = finalObj.getJSONObject(i).getJSONArray("details");

                        for(int j=0; j<details.length(); j++)
                        {
                            id = details.getJSONObject(j).optString("id");
                            item = details.getJSONObject(j).optString("item");
                            amount = details.getJSONObject(j).optString("amount");
                            unit = details.getJSONObject(j).optString("unit");
                            price = details.getJSONObject(j).optString("price");
                            total_price = details.getJSONObject(j).optString("total-price");
                        }

                        long id1=databaseHelper.insert(new Info(client,orderAmount,date,orderNumber,upperLimit,debt,img),name);
                        databaseHelper.insert_details(new Details_info(id,item,amount,unit,price,total_price,orderNumber),name2);
                    }
                    rs = databaseHelper.selectAll(name,img);
                    Log.i("size", finalObj.length()+"");
                }//try end

                catch (JSONException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
            return rs;
        }

        @Override//
        protected void onPostExecute(ArrayList<Info> result) 
        {
            // TODO Auto-generated method stub
            //SetAdapterList(result);
            isDataLoaded = true;
            rs = databaseHelper.selectAll(name,img);
            SetAdapterList(rs);         
            pd.dismiss();
        }
    }

    @Override 
    public void onStop()
    {
        super.onStop();
        if ( databaseHelper != null )
        {
            databaseHelper.close();
        }
        System.out.println ( "db closed" );
    }
}

Upvotes: 1

Sami Eltamawy
Sami Eltamawy

Reputation: 10009

You can use SharedPreference to monitor the state of your insertion. Create a boolean SharedPreference with a default value of false and When you insert your value, put its value with true and check this Preference each time you enter this scoop of code. Use the following two methods to your code

Call the following method after you insert the date into the database at the first time.

Setter:

public void setInsertedToDB(){
    SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
    Editor editor = sharedpreferences.edit();
    editor.putBoolean("key", true);
    editor.commit();
}

Check for the following method return value before you add to database.

Getter:

public boolean isInsertedBeforeToDB(){
    SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
    sharedpreferences.getBoolean("key", false);//False is the default value
}

Read this link for more info about the SharedPreferences. I hope it helps.

Using SQLite:

You can do it by creating a Unique attribute for the required Row using OnConflect IGNORE feature.

Example:

id INTEGER PRIMARY_KEY ON CONFLICT REPLACE

Upvotes: 3

Related Questions