Java 我们如何传递数据?
我们如何将一个Java 我们如何传递数据?,java,android,sqliteopenhelper,Java,Android,Sqliteopenhelper,我们如何将一个方法的数据传递给另一个类类型SQLiteOpenHelper。 例如,我们有:(MainActivity.java) 另一个类是:(DB.java) 但是上面的代码不起作用。您不应该以这种方式实例化活动类。改用一个单独的类,您可以在其中定义希望在其他地方使用的方法。在你的情况下,收到包裹名称,我会这样做 public class PackageNameHelper { private Context mContext; public PackageNameHelp
方法的数据传递给另一个类类型SQLiteOpenHelper
。
例如,我们有:(MainActivity.java
)
另一个类是:(DB.java
)
但是上面的代码不起作用。您不应该以这种方式实例化活动类。改用一个单独的类,您可以在其中定义希望在其他地方使用的方法。在你的情况下,收到包裹名称,我会这样做
public class PackageNameHelper
{
private Context mContext;
public PackageNameHelper(Context context)
{
mContext = context;
}
public String GetPackageName(){
return mContext.getPackageName();
}
}
然后在activity/SQLite助手中,您将执行以下操作:
PackageNameHelper helper = new PackageNameHelper(getApplicationContext());
String packageName = helper.getPackageName()
或者,您可以将helper类设置为静态,这样就必须在getPackageName()方法中直接传递上下文,如
public class PackageNameHelper
{
public static String GetPackageName(Context context){
return context.getPackageName();
}
}
像这样使用它
//Where context is an instance of a context
String packageName = PackageNameHelper.getPackageName(context);
您不应该实例化您的活动,在我看来,在您的情况下,一个好的方法是为DB
类定义一个构造函数,该类将一个参数作为此应用程序的上下文。然后可以将其保存在成员变量中,并在需要时使用它
public class DB extends SQLiteOpenHelper {
Context mContext;
/* Constructor */
public DB(Context context) {
mContext = context;
}
}
如果需要在DB
类代码中检索包名,可以使用mContext.getPackageName()
检索包名。您需要的是基本的android java教程。因为此代码涉及一些基本错误,例如实例化活动。
//Where context is an instance of a context
String packageName = PackageNameHelper.getPackageName(context);
public class DB extends SQLiteOpenHelper {
Context mContext;
/* Constructor */
public DB(Context context) {
mContext = context;
}
}