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;
  }

}