Call Activity Method From Fragment

后端 未结 5 974
南笙
南笙 2021-01-14 10:12

I\'m dealing with fragments.
I have an Activity and different fragments.
Each fragment need the access to a Class(call i

5条回答
  •  轮回少年
    2021-01-14 10:34

    This is a little bit more of a Java question and android.

    If you looking at accessing the database, look at creating a database singleton.

    So something like:

    public class Database {
    
        // This starts off null
        private static Database mInstance;
    
        /**
         * Singleton method, will return the same object each time.
         */
        public static final Database getInstance() {
            // First time this method is called by Database.getInstance() from anywhere
            // in your App. It will create this Object once.
            if(mInstance == null) mInstance = new Database();
            // Returns the created object from a statically assigned field so its never
            // destroyed until you do it manually.
            return mInstance;
        }
    
        //Private constructor to stop you from creating this object by accident
        private Database(){
          //Init db object
        }
    
    }
    

    So then from your fragments and activities you can then place the following field in your class's (Better use use a base activity and fragment to save you repeating code).

    public abstract class BaseFragment extends Fragment {
    
        protected final Database mDatabase = Database.getInstance();
    
    }
    

    Then your concrete fragments can extend your BaseFragment e.g. SearchListFragment extends BaseFragment

    Hope this helps.

    Worth reading about singletons and database

    Regards, Chris

提交回复
热议问题