Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.

Paste

Pasted by Venkat ( 14 years ago )
SQLiteDBActivity.java:::::

package com.data.pack;

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

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;


import android.app.ListActivity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class SqliteDBActivity extends ListActivity {
 private static PlaceDataSQL placeData;
 private ArrayList<String>id=new ArrayList<String>();
 private ArrayList<byte[]>image=new ArrayList<byte[]>();
 private ArrayList<String>caption=new ArrayList<String>();
 private ArrayList<String>description=new ArrayList<String>();
 private Button populate;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        populate=(Button)findViewById(R.id.populate);
        placeData=new PlaceDataSQL(this);
        SQLiteDatabase db=placeData.getWritableDatabase();
        
        Cursor cursors=getRawEvents("select * from EX");
        if(cursors.moveToNext())
        {
         populate.setVisibility(View.GONE);
         getDataAndPopulate();
        }else{
         populate.setVisibility(View.VISIBLE);
        }
        db.delete("EX","id=?",new String[]{
          "12"});
        populate.setOnClickListener(new View.OnClickListener() {
   
   public void onClick(View v) {
    // TODO Auto-generated method stub
   try{
    callInsertion("1","http://2.bp.blogspot.com/-bkmnlZUKXPs/TjZeTVCgp9I/AAAAAAAAAHI/SPnWJYqq4uQ/s1600/twitter_follow.gif","First","This is the first item");
    callInsertion("2","http://1.bp.blogspot.com/-HDNFnyRU2Cw/TcuMbBaL70I/AAAAAAAAAGc/7eWN1qnZbAw/s320/seek.JPG","Second","This is the second item");
   }catch(ClientProtocolException e){
    //TODO Auto-generated catch block
    e.printStackTrace();
   }catch(IOException e)
   {
    e.printStackTrace();
   }
   getDataAndPopulate();
   
   }
  });   
}

   private void callInsertion(String id, String url,
     String caption, String description)throws ClientProtocolException,IOException {
    // TODO Auto-generated method stub
    DefaultHttpClient mHttpClient=new DefaultHttpClient();
    HttpGet mHttpGet=new HttpGet(url);
    HttpResponse mHttpResponse=mHttpClient.execute(mHttpGet);
    if(mHttpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
     HttpEntity entity=mHttpResponse.getEntity();
     if(entity!=null)
     {
      insertData(id,EntityUtils.toByteArray(entity),caption,description);
     }
    }
   }
   private void insertData(String id,byte[] image,String caption,String description){
    SQLiteDatabase db=placeData.getWritableDatabase();
    ContentValues values;
    values=new ContentValues();
    values.put("id",id);
    values.put("image",image);
    values.put("caption",caption);
    values.put("description",description);
    
    db.insert("EX",null, values);
   }
   
   private void getDataAndPopulate(){
    id=new ArrayList<String>();
    image=new ArrayList<byte[]>();
    caption=new ArrayList<String>();
    Cursor cursor=getEvents("EX");
    while(cursor.moveToNext())
    {
     String temp_id=cursor.getString(0);
     byte[] temp_image=cursor.getBlob(1);
     String temp_caption=cursor.getString(2);
     String temp_description=cursor.getString(3);
     id.add(temp_id);
     image.add(temp_image);
     caption.add(temp_caption);
     description.add(temp_description);
    }
    String[] captionArray=(String[])caption.toArray(new String[caption.size()]);
    ItemsAdapter itemsAdapter=new ItemsAdapter(SqliteDBActivity.this,R.layout.item,captionArray);
    setListAdapter(itemsAdapter);
    populate.setVisibility(View.GONE);
   }
   private class ItemsAdapter extends BaseAdapter{
    String[] items;
    public ItemsAdapter(Context context,int textViewResourceId,String[] items){
     this.items=items;
    }
    public View getView(final int POSITION,View convertView,ViewGroup parent){
     TextView desc;
     TextView cap;
     View view=convertView;
     ImageView img;
     if(view==null){
      LayoutInflater vi=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      view=vi.inflate(R.layout.item,null);
     }
     img=(ImageView)view.findViewById(R.id.image);
     cap=(TextView)view.findViewById(R.id.caption);
     desc=(TextView)view.findViewById(R.id.description);
     cap.setText(caption.get(POSITION));
     desc.setText(description.get(POSITION));
     img.setImageBitmap(BitmapFactory.decodeByteArray(image.get(POSITION),0,image.get(POSITION).length));
     return view;
    }
    public int getCount(){
     return items.length;
    }
    public Object getItem(int position){
     return position;
    }
    public long getItemId(int position){
     return position;
    }
    
    }
   private Cursor getRawEvents(String sql){
    SQLiteDatabase db=(placeData).getReadableDatabase();
    Cursor cursor=db.rawQuery(sql, null);
    startManagingCursor(cursor);
    return cursor;
   }
   private Cursor getEvents(String table){
    SQLiteDatabase db=(placeData).getReadableDatabase();
    Cursor cursor=db.query(table, null, null,null,null,null,null);
    startManagingCursor(cursor);
    return cursor;
   }
}


Placedata.java::::

package com.data.pack;

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

public class PlaceDataSQL extends SQLiteOpenHelper{
 private static final String DATABASE_NAME="example.db";
 private static final int DATABASE_VERSION=1;
 public PlaceDataSQL(Context myContext)
 {
  super(myContext,DATABASE_NAME,null,DATABASE_VERSION);
 }


 /* (non-Javadoc)
  * @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase)
  */
 @Override
 public void onCreate(SQLiteDatabase db) {
  // TODO Auto-generated method stub
  db.execSQL("CREATE TABLE EX(id varchar(20),image BLOB,caption varchar(160),description varchar(200))");
 }
 public boolean checkDataBase(String db)
 {
  SQLiteDatabase checkDB=null;
  try{
   String myPath="data/data/com.data.pack/databases/"+db;
   checkDB=SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
   }catch(SQLiteException e)
   {
    
   }catch(Exception e)
   {
    
   }
  if(checkDB!=null){
   checkDB.close();
  }
  return checkDB!=null?true:false;
 }

 /* (non-Javadoc)
  * @see android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int)
  */
 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  // TODO Auto-generated method stub
  if(oldVersion>=newVersion)
   return;
  if(oldVersion==1)
  {
   Log.d("New Version","Datas can be upgraded");
  }
  Log.d("Sample Data","onUpgarde :"+newVersion);
 }

}


item.xml:::
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" 
 android:layout_width="fill_parent"
 android:layout_height="wrap_content">
 
 <ImageView android:layout_width="50dp" 
     android:layout_height="50dp"
  android:id="@+id/image" />
 
 <TextView android:id="@+id/caption" 
     android:layout_toRightOf="@id/image"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="18sp"/>
 
 <TextView android:id="@+id/description"
  android:layout_toRightOf="@id/image"
  android:layout_below="@id/caption"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" />
</RelativeLayout>


MAIN.XML:::

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" 
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 
 <Button android:id="@+id/populate" 
     android:text="Populate data to sqlite and show in list"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content" />
 <ListView android:id="@android:id/list" 
     android:background="@android:color/white"
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"></ListView>
</LinearLayout>

 

Revise this Paste

Children: 51281
Your Name: Code Language: