什么是从片段中存储值的适当方法?

时间:2014-08-31 20:20:14

标签: android database android-activity android-fragments

我是android和片段的新手,所以我的问题是关于在app数据库中存储值的适当方法。

从活动调用片段并传递数据库处理程序?

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.<specific_function_name>(dbhandler); 

或从片段中调用活动方法?

import mainActivity;
...
mainActivity currentActivity=(mainActivity )getActivity();
currentActivity.storeValures(val,val2...)

或者只是在每个片段上设置数据库处理程序?...

或许还有更好的设计可以解决这个问题?

提前感谢您的回答。

1 个答案:

答案 0 :(得分:1)

由于数据库管理器对于整个应用程序都是通用的,因此您可以创建一个DataHandler类,它将具有单例Datahandler实例

public class MyDatabaseHandler extends SQLiteOpenHelper{
    private static MyDatabaseHandler databaseHandlerInstance; 

    public static synchronized MyDatabaseHandler getInstance(Context context) {
      if(databaseHandlerInstance ==  null)
         databaseHandlerInstance = new MyDatabaseHandler(Context context);

      return databaseHandlerInstance;
    } 

    public MyDatabaseHandler(Context context){
        // Call to super class
        //
    }

   // ..... onCreate calls
}

这样您就可以在应用程序的任何位置使用dbhandler,例如MyDatabaseHandler.getInstance(context)

我使用这种方法......