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