如何在sqlite数据库中只插入一次?并且即使我再次返回活动也会停止插入?

时间:2014-02-25 09:54:03

标签: android json sqlite custom-adapter

我有一个android文件,我从服务器中检索JSON数据,然后将其插入sqlite数据库,然后将其显示在listView customAdapter中。

但每次我去另一个活动并返回主要活动时,它会再次插入表中......我怎么能阻止这个?

这是代码:

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);



                }
            });
//    
        }

    }

}

这是我的 InfoServiceNew.java 类:

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) ;



    }

}

2 个答案:

答案 0 :(得分:2)

您可以使用SharedPreference来监控插入状态。创建一个boolean SharedPreference,其默认值为false,当您插入值时,请将其值设为true并在每次输入此代码时检查此首选项。对代码使用以下两种方法

第一次将日期插入数据库后,请调用以下方法。

Setter:

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

在添加到数据库之前检查以下方法return

<强>吸气剂:

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

有关SharedPreferences的详情,请阅读此link。我希望它有所帮助。

使用SQLite

您可以使用Row功能为所需的OnConflect IGNORE创建唯一属性。

示例:

id INTEGER PRIMARY_KEY ON CONFLICT REPLACE

答案 1 :(得分:1)

由于您希望按会话插入一次数据,您可以按以下方式执行检查操作,

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");
}

以下是完整的工作代码:

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" );
    }
}