Access Database class through a fragment in android -


i'm trying access sqlite database fragment in "mainactivity.java" database function in file "database.java" database_fragment.xml called in "oncreateview" of "mainactivity" can't access function... should put database function directly fragment class see those?

here's important part of code:

(in mainactivity.java)

/**  * "fragment_database", shows database list  */ public static class subfragment extends fragment {     public static final string arg_menu_number = "menu_number"; // sub-menu      public subfragment() {         // empty constructor required fragment subclasses     }      @override     public view oncreateview(layoutinflater inflater, viewgroup container,             bundle savedinstancestate) {         int = getarguments().getint(arg_menu_number);         view rootview;         if(i==0){             rootview = inflater.inflate(r.layout.fragment_database, container, false);         }else{             rootview = inflater.inflate(r.layout.fragment_help, container, false);           }          return rootview;     }   } 

here function xml can't reach:

(in database.java)

    public void onclick_displayrecords(view v) {     displaytext("clicked display record!");      cursor cursor = mydb.getallrows();     displayrecordset(cursor); } 

the error message:

java.lang.illegalstateexception: not find method onclick_displayrecords(view) in activity class com.mtl.android.spca.mainactivity onclick handler on view class android.widget.button id 'btndisplay'

databases case singleton.

private static somedatabase instance=null  private somedatabase(context context) { .... }  public static somedatabase getinstance(context context) {     if (instance==null) {         instance=new somedatabase(context);     }     return instance } 

then can use anywhere want to, call somedatabase.getinstance(context);.

however, that's not problem. problem specifying android:onclick in xml, , trying reference callback in fragment. callbacks go activity. you'll need in java code, specify onclicklistener manually.

@override public view oncreateview(layoutinflater inflater, viewgroup container,         bundle savedinstancestate) {     findviewbyid(r.id.button_id).setonclicklistener(new onclicklistener() {         @override         public void onclick() {              nclick_displayrecords()         }     }     ... 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -