Android – invoking active methods from fragments

I'm dealing with fragments. I have an activity and different fragments. Each fragment needs to access a class (called x) that allows it to access the database. However, because I have many fragments, I don't want to create a different class X instance in each fragment. I think it needs a lot of memory. What should I do? I wrote something like this (with getter), but it doesn't work!

public class MyActivity {
  private ClassX classx;

  .....

  public ClassX getClassX() {
     return classx;
  }   
  .....
}

But how can I call it from a clip?

resolvent:

It's a bit like Java problems and Android

If you are accessing a database, see creating a database singleton

So it's similar to:

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
    }

}

Then, from your snippets and activities, you can put the following fields in your class (better use basic activities and snippets to save duplicate code)

public abstract class BaseFragment extends Fragment {

    protected final Database mDatabase = Database.getInstance();

}

Then your specific fragment can extend your basefragment. For example, searchlistfragment extends basefragment

I hope this will help

Singletons and databases are worth reading

Hello, Chris

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>