android - my application not save image -


my app crashes when press save button. have been following this tutorial. logcat showing error "unable open database file

here code:

import android.provider.mediastore;  import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.imageview; import android.widget.textview; import android.widget.toast;    public class mainactivity extends activity implements onclicklistener {         protected static textview textview;       protected static imageview image1, image2;      protected button get_image, save_image, read_image;      private string selectedimagepath;       private static final int select_picture = 1;       string db_name = environment.getexternalstoragedirectory() + "/test.db";     string       table_name = "mytable";        @override         public void oncreate(bundle savedinstancestate) {            super.oncreate(savedinstancestate);               setcontentview(r.layout.activity_main);            image1 = (imageview) findviewbyid(r.id.imageview1);            image2 = (imageview) findviewbyid(r.id.imageview2);         textview = (textview) findviewbyid(r.id.textview1);            get_image = (button) findviewbyid(r.id.get_image);                      get_image.setonclicklistener(this);          save_image = (button) findviewbyid(r.id.save_image);           save_image.setonclicklistener(this);            read_image = (button) findviewbyid(r.id.read_image);           read_image.setonclicklistener(this);       }            public void onclick(view v) {         int id = v.getid();            switch (id) {                case     r.id.get_image:              intent intent = new intent();               intent.settype("image/*");               intent.setaction(intent.action_get_content);              startactivityforresult(intent.createchooser(                      intent,"select picture"),select_picture);                          break;                      case      r.id.save_image:               createtable();              saveindb();               break;                case     r.id.read_image:             readfromdb();               break;               default:                  break;            }        }          public void onactivityresult(int requestcode, int resultcode, intent data) {          if (resultcode == result_ok) {                 if (requestcode == select_picture) {                   uri selectedimageuri = data.getdata();                   selectedimagepath = getpath(selectedimageuri);                  system.out.println("image path : " + selectedimagepath);                  image1.setvisibility(view.visible);                   image1.setimageuri(selectedimageuri);               }             }          }          @suppresswarnings("deprecation")        public string getpath(uri uri) {          string[] projection = { mediastore.images.media.data };          cursor cursor = managedquery(uri, projection, null, null, null);            int column_index = cursor                     .getcolumnindexorthrow(mediastore.images.media.data);           cursor.movetofirst();           return cursor.getstring(column_index);      }       void createtable() {            sqlitedatabase mydb = openorcreatedatabase(db_name, context.mode_private, null);            string mysql = "create table if not exists " + table_name                         + " (_id integer primary key autoincrement,                 name text not null, image blob);";                  mydb.execsql(mysql);                      mydb.close();           }              void saveindb() {                   sqlitedatabase mydb = openorcreatedatabase(db_name,context.mode_private, null);            byte[] byteimage1 = null;             string s = mydb.getpath();            mydb.execsql("delete " + table_name);            // clearing table              contentvalues newvalues = new contentvalues();           string name = "coderzheaven";             newvalues.put("name", name);               try {                          fileinputstream instream = new fileinputstream(selectedimagepath);                                           bufferedinputstream bif = new  bufferedinputstream(instream);                          byteimage1 = new byte[bif.available()];                bif.read(byteimage1);                newvalues.put("image", byteimage1);              long ret = mydb.insert(table_name, null, newvalues);              if (ret < 0)                      textview.append("error");            } catch (ioexception e) {                      textview.append("error exception : " + e.getmessage());         }           mydb.close();                  textview.append("\n saving details \n name : " + name);                textview.append("\n image size : " + byteimage1.length + " kb");           textview.append("\n saved in db : " + s + "\n");            toast.maketext(this.getbasecontext(),                     "image saved in db successfully.", toast.length_short).show();      }            void readfromdb() {              byte[] byteimage2 = null;             sqlitedatabase mydb;                mydb = openorcreatedatabase(db_name, context.mode_private, null);          cursor cur = mydb.query(table_name, null, null, null, null, null, null);           cur.movetofirst();             while (cur.isafterlast() == false) {              textview.append("\n reading details \n name : " + cur.getstring(1));                cur.movetonext();            }           // /////read data blob field////////////////////              cur.movetofirst();            byteimage2 = cur.getblob(cur.getcolumnindex("image"));           setimage(byteimage2);           cur.close();          mydb.close();            toast.maketext(this.getbasecontext(),"image read db successfully.",                 toast.length_short).show();            toast.maketext(this.getbasecontext(),                       "if image big, please scrolldown see result.",                     toast.length_short).show();        }             void setimage(byte[] byteimage2) {           image2.setimagebitmap(bitmapfactory.decodebytearray(byteimage2, 0,                   byteimage2.length));                  textview.append("\n image size : " +                    byteimage2.length + " kb");          }    }  


Comments

Popular posts from this blog

Delphi XE2 Indy10 udp client-server interchange using SendBuffer-ReceiveBuffer -

Qt ActiveX WMI QAxBase::dynamicCallHelper: ItemIndex(int): No such property in -

Enable autocomplete or intellisense in Atom editor for PHP -