java - SwipeRefreshLayout doesn't update list view -


i wanted add swipe refresh listview in fragment doesn't seem work doesn't update list view @ all. here how activity works:

  1. users open picturefragment list of images (listview) shown.
  2. users press "add button" open uploadimageactivity add in image.
  3. once done, uploadimageactivity close , users picturefragment (not updated latest image upload yet).
  4. user swipes down update, << doesn't update latest image listview!

hope kind soul can me resolve this.

public class picturefragment extends fragment {  private listview listview; private int smiley_id; private string title, date, caption, image; private imagebutton addpicbutton; private swiperefreshlayout swiperefreshlayout; private pictureadapter adapter; private tabledatabase tabledatabase; private cursor cursor;  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate); }  @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {      view rootview = inflater.inflate(r.layout.fragment_picture, container, false);      // set listview     listview = (listview) rootview.findviewbyid(r.id.piclistview);     adapter = new pictureadapter(getactivity().getapplicationcontext(), r.layout.row_feed);     listview.setadapter(adapter);     // retrieve data database     tabledatabase = new tabledatabase(getactivity());     // rows of database     cursor = tabledatabase.getinformation(tabledatabase);      // start last listview displays latest image first     // check existing rows     if(cursor.movetolast()) {         {             // items each column             smiley_id = cursor.getint(0);             title = cursor.getstring(1);             date = cursor.getstring(2);             caption = cursor.getstring(3);             image = cursor.getstring(4);              // saves images added user listview             pictureitem pictureitem = new pictureitem(smiley_id, title, date, caption, image);             adapter.add(pictureitem);         } while (cursor.movetoprevious());     }      // swipe on refresh     swiperefreshlayout = (swiperefreshlayout) rootview.findviewbyid(r.id.swipe_refresh);     swiperefreshlayout.setenabled(false);      swiperefreshlayout.setonrefreshlistener(new swiperefreshlayout.onrefreshlistener() {         @override         public void onrefresh() {             swiperefreshlayout.setrefreshing(true);             (new handler()).postdelayed(new runnable() {                 @override                 public void run() {                     adapter.notifydatasetchanged();                     swiperefreshlayout.setrefreshing(false);                 }             }, 1000);         }     });      listview.setonscrolllistener(new abslistview.onscrolllistener() {         @override         public void onscrollstatechanged(abslistview view, int scrollstate) {          }          @override         public void onscroll(abslistview view, int firstvisibleitem, int visibleitemcount, int totalitemcount) {             if(firstvisibleitem == 0) swiperefreshlayout.setenabled(true);             else swiperefreshlayout.setenabled(false);         }     });      // lead user uploadimageactivity insert image listview     addpicbutton = (imagebutton) rootview.findviewbyid(r.id.addpicturebutton);     addpicbutton.setonclicklistener(new view.onclicklistener() {         @override         public void onclick(view v) {             startactivity(new intent(getactivity().getapplicationcontext(), uploadimageactivity.class));         }     });      return rootview; } 

uploadimageactivity.java

public class uploadimageactivity extends actionbaractivity implements view.onclicklistener{  private calendar cal = calendar.getinstance(); private simpledateformat dateformatter = new simpledateformat("dd mmm yyyy, eee @ hh:mm a");  edittext pic_title, pic_caption; imageview picture; button smiley1, smiley2, smiley3, smiley4, smiley5, selected_smiley;  // store in database int smiley_id = r.drawable.smile1; // set default smiley first smiley if not chosen string title, date, caption; string uripicture;    // save uri in string format store image text format in database  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_picture);      // removes shadow under action bar     getsupportactionbar().setelevation(0);      pic_title = (edittext) findviewbyid(r.id.picture_title);     pic_caption = (edittext) findviewbyid(r.id.picture_caption);      picture = (imageview) findviewbyid(r.id.imagebutton);     smiley1 = (button) findviewbyid(r.id.button1);     smiley2 = (button) findviewbyid(r.id.button2);     smiley3 = (button) findviewbyid(r.id.button3);     smiley4 = (button) findviewbyid(r.id.button4);     smiley5 = (button) findviewbyid(r.id.button5);     selected_smiley = (button) findviewbyid(r.id.select_smiley);      picture.setonclicklistener(this);     smiley1.setonclicklistener(this);     smiley2.setonclicklistener(this);     smiley3.setonclicklistener(this);     smiley4.setonclicklistener(this);     smiley5.setonclicklistener(this); }  @override public boolean oncreateoptionsmenu(menu menu) {     getmenuinflater().inflate(r.menu.menu_event, menu);     return true; }  @override public boolean onoptionsitemselected(menuitem item) {     int id = item.getitemid();      if (id == r.id.action_ok) {         title = pic_title.gettext().tostring();         date = dateformatter.format(cal.gettime());         caption = pic_caption.gettext().tostring();          // not save data         if(title.isempty()) {             alertuser("upload failed!", "please enter title.");         }          else if(caption.isempty()) {             alertuser("upload failed!", "please enter caption.");         }          else if(uripicture.isempty()) {             alertuser("upload failed!", "please upload image.");         }          // save data when title, caption , image not empty         else {             // add information database             tabledatabase tabledatabase = new tabledatabase(this);             tabledatabase.putinformation(tabledatabase, smiley_id, title, date, caption, uripicture);             toast.maketext(getbasecontext(), "details saved", toast.length_long).show();             finish();         }          return true;     }      return super.onoptionsitemselected(item); }  @override public void onclick(view v) {     switch(v.getid()) {         // show image picked user         case r.id.imagebutton:             picture.setimagedrawable(null);             crop.pickimage(this);             break;          // saves user's smiley choice         case r.id.button1:             selected_smiley.setbackgroundresource(r.drawable.smile1);             selected_smiley.settext("");             setsmileyid(r.drawable.smile1);             break;         case r.id.button2:             selected_smiley.setbackgroundresource(r.drawable.smile2);             selected_smiley.settext("");             setsmileyid(r.drawable.smile2);             break;         case r.id.button3:             selected_smiley.setbackgroundresource(r.drawable.smile3);             selected_smiley.settext("");             setsmileyid(r.drawable.smile3);             break;         case r.id.button4:             selected_smiley.setbackgroundresource(r.drawable.smile4);             selected_smiley.settext("");             setsmileyid(r.drawable.smile4);             break;         case r.id.button5:             selected_smiley.setbackgroundresource(r.drawable.smile5);             selected_smiley.settext("");             setsmileyid(r.drawable.smile5);             break;          default:             break;     } }  // method sets smiley id according user picks. private void setsmileyid(int smileyid) {     this.smiley_id = smileyid; }  // method calls alert dialog inform users message. private void alertuser(string title, string message) {     alertdialog.builder dialogbuilder = new alertdialog.builder(uploadimageactivity.this);     dialogbuilder.settitle(title);     dialogbuilder.setmessage(message);     dialogbuilder.setpositivebutton("ok", null);     dialogbuilder.show(); }  @override protected void onactivityresult(int requestcode, int resultcode, intent data) {     if(requestcode == crop.request_pick && resultcode == result_ok) {         begincrop(data.getdata());     } else if(requestcode == crop.request_crop) {         handlecrop(resultcode, data);     } }  // method allows users crop image in square. private void begincrop(uri source) {     uri destination = uri.fromfile(new file(getcachedir(), "cropped"));     crop.of(source, destination).assquare().start(this); }  // method ensures there no errors in cropping. private void handlecrop(int resultcode, intent result) {     if(resultcode == result_ok) {         picture.setimageuri(crop.getoutput(result));         uripicture = crop.getoutput(result).tostring();     } else if(resultcode == crop.result_error) {         toast.maketext(this, crop.geterror(result).getmessage(), toast.length_short).show();     } } 

tabledatabase.java

public class tabledatabase extends sqliteopenhelper {  public string query = "create table " + tabledata.tableinfo.table_name + " (" +                                         tabledata.tableinfo.smiley + " integer not null, " +                                         tabledata.tableinfo.title + " text, " +                                         tabledata.tableinfo.date + " text, " +                                         tabledata.tableinfo.caption + " text, " +                                         tabledata.tableinfo.image + " text);";  public tabledatabase(context context) {     super(context, tabledata.tableinfo.database_name, null, tabledata.tableinfo.database_version);     // check if database created     log.d("database operations", "database created"); }  @override public void oncreate(sqlitedatabase db) {     // create table     db.execsql(query);     log.d("database operations", "table created"); }  @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) {  }  // insert user information database public void putinformation(tabledatabase data, int smiley, string title, string date, string caption, string image) {     // write data database     sqlitedatabase sqlitedatabase = data.getwritabledatabase();     contentvalues contentvalues = new contentvalues();      // add value each column contentvalue     contentvalues.put(tabledata.tableinfo.smiley, smiley);     contentvalues.put(tabledata.tableinfo.title, title);     contentvalues.put(tabledata.tableinfo.date, date);     contentvalues.put(tabledata.tableinfo.caption, caption);     contentvalues.put(tabledata.tableinfo.image, image);      // insert sqlite database     sqlitedatabase.insert(tabledata.tableinfo.table_name, null, contentvalues);     log.d("database operations", "one row inserted"); }  // retrieve data database public cursor getinformation(tabledatabase data) {     // read data sqlite database     sqlitedatabase sqlitedatabase = data.getreadabledatabase();     string[] columns = { tabledata.tableinfo.smiley, tabledata.tableinfo.title, tabledata.tableinfo.date, tabledata.tableinfo.caption, tabledata.tableinfo.image };      // points first row of table     return sqlitedatabase.query(tabledata.tableinfo.table_name, columns, null, null, null, null, null); } 


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -