我是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...)
或者只是在每个片段上设置数据库处理程序?...
或许还有更好的设计可以解决这个问题?
提前感谢您的回答。
答案 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)
我使用这种方法......