我需要在一个没有链接到任何活动的java类中打开我的数据库

时间:2017-01-19 06:03:39

标签: android

这个类将通过比较数据库中的值和用户输入的值来为用户选择最好的东西。

public class Comparator {




    public void findBestCrop() {
       SQLiteOpenHelper AgroDatabase = new AgroDatabase(this);
       SQLiteDatabase db = AgroDatabase.getReadableDatabase();
       Cursor cursor = db.query("userinfo",
               new String[]{"User_Name", "Location", "CurrentNoFields"},
               "_id=?",
               new String[]{Integer.toString(1)}, null, null, null
       );


   }



}

但我得到错误(无法应用AgroDatabase),而我在此行提供参数(此)SQLiteOpenHelper AgroDatabase = new AgroDatabase(this);

Comparator al1= new Comparator();

我在我的另一个java类中创建了一个类的对象,该类与一个活动相关联 我不明白为什么在这种情况下我无法使用我的数据库。 我需要上课吗?我不知道该怎么做

1 个答案:

答案 0 :(得分:0)

尝试从创建新对象的活动传递上下文:

Comparator al1= new Comparator(YourActivity.this);

在默认构造函数中将此构造函数传递给Class:

public class Comparator {

Context mContext;
public void Comparator(Context context) {
    this.mContext = context
}

public void findBestCrop() {
   SQLiteOpenHelper AgroDatabase = new AgroDatabase(mContext );
   SQLiteDatabase db = AgroDatabase.getReadableDatabase();
   Cursor cursor = db.query("userinfo",
           new String[]{"User_Name", "Location", "CurrentNoFields"},
           "_id=?",
           new String[]{Integer.toString(1)}, null, null, null
   );
   }
}