My Code here
my code is working good only at the run time. But when i closed once my app and again open i didn't get image, only i got unfortunately app closed error. please help me how to use rawquery here at the all time.
public static final int REQUEST_IMAGE=1;
EditText _id,_name;
ImageView img,img1;
Button insert,display;
File desi;
String imagepath;
private MyDataBase mdb=null;
private SQLiteDatabase db=null;
private Cursor c=null;
private byte[] imge=null;
private static final String DATABASE_NAME = "sampledp.db";
public static final int DATABASE_VERSION = 1;
private String sid;
static String name;
TextView idid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_db);
_id=(EditText)findViewById(R.id.edit_id);
_name=(EditText)findViewById(R.id.edit_name);
img=(ImageView)findViewById(R.id.image);
img1=(ImageView)findViewById(R.id.image1);
insert=(Button)findViewById(R.id.insert);
idid=(TextView)findViewById(R.id.idid);
display=(Button)findViewById(R.id.display);
mdb=new MyDataBase(getApplicationContext(), DATABASE_NAME,null, DATABASE_VERSION);
img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
name=_id.getText().toString();
desi=new File(Environment.getExternalStorageDirectory(),name+".JPEG");
Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(desi));
startActivityForResult(i, REQUEST_IMAGE);
}
});
insert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Bitmap b=BitmapFactory.decodeFile(imagepath);
ContentValues cv=new ContentValues();
ByteArrayOutputStream bos=new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.JPEG, 90, bos);
imge=bos.toByteArray();
sid=_id.getText().toString();
db=mdb.getWritableDatabase();
cv.put("image", imge);
cv.put("ID", sid);
db.insert("tableimage", null, cv);
Toast.makeText(getApplicationContext(), "inserted successfully", Toast.LENGTH_SHORT).show();
}
});
display.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String[] col={"image","ID"};
c=db.rawQuery("select * from tableimage where ID="+_name.getText()+";",col);
if(c!=null){
c.moveToFirst();
do{
imge=c.getBlob(c.getColumnIndex("image"));
sid=c.getString(c.getColumnIndex("ID"));
}while(c.moveToNext());
}
Bitmap b1=BitmapFactory.decodeByteArray(imge, 0, imge.length);
String ii=String.valueOf(sid);
img1.setImageBitmap(b1);
idid.setText(ii);
Toast.makeText(getApplicationContext(), "Retrive successfully", Toast.LENGTH_SHORT).show();
}
});
}
protected void onActivityResult(int requestCode,int resultCode,Intent data){
if(requestCode==REQUEST_IMAGE && resultCode==Activity.RESULT_OK){
try{
FileInputStream in=new FileInputStream(desi);
imagepath=desi.getAbsolutePath();
Bitmap bb=BitmapFactory.decodeStream(in);
img.setImageBitmap(bb);
}catch(FileNotFoundException e){
e.printStackTrace();
}
}
}
This is the my xml code
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/edit_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="roll No" />
<ImageView
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/ic_launcher" />
<Button
android:id="@+id/insert"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Insert Details" />
<EditText
android:id="@+id/edit_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="enter roll No" />
<Button
android:id="@+id/display"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Display Details" />
<ImageView
android:id="@+id/image1"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/ic_launcher" />
<TextView
android:id="@+id/idid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="id" />
</LinearLayout>
Aucun commentaire:
Enregistrer un commentaire