我仍然对Java有点新,直接进行Android编程,所以我在一些编程实践中有点困惑。我只是想问一下如何将这个方法从另一个类调用到我的OnCreate( )?我的方法在DBFunctions.java中。基本上,我会在我的游戏选项中使用它。
public void checkExistence(Cursor check) {
String sql = "SELECT * FROM option WHERE id = 1";
check = db.rawQuery(sql, null);`
}
我想在我的OnCreate()中调用它。如果值存在,我只想先显示“Value exists”,否则“No Value exists”。如果参数内的光标正确,请同意我。
答案 0 :(得分:1)
创建DBFunctions
的实例,然后调用checkExistence()
。例如:
DBFunctions dbfunc = new DBFunctions();
if (dbfunc.checkExistence()) {
/* do something */
} else {
/* do something else */
}
所以改变你的checkExistence()
签名:返回一个布尔值,Cursor应该是你方法中的一个局部变量:
public boolean checkExistence() {
boolean exists = false;
String sql = "SELECT * FROM option WHERE id = 1";
Cursor cursor = db.rawQuery(sql, null);
exists = (cursor.getCount() > 0);
cursor.close();
return exists;
}
另一个选项是将static
修饰符添加到checkExistence()
并按以下方式调用:
if (DBFunctions.checkExistence()) {
/* do something */
} else {
/* do something else */
}
答案 1 :(得分:0)
首先,您应该将Cursor声明为方法中的局部变量。获取Cursor后检查值是否存在并返回布尔值。方法原型应如下所示:
public boolean checkExistence()
从onCreate方法中,您将按如下方式调用它:
if (new DBFunctions().checkExistence()) {
// do something
} else {
// do something else
}
答案 2 :(得分:0)
如果你想调用任何其他类的方法你可以通过引用它的类名来调用它,如下面:: :(使该函数静态)
ClassName.FunctionName()即所有......
即使你可以从函数返回值,如果void使用你的返回类型......
答案 3 :(得分:0)
要从另一个类调用此方法,首先必须创建DBFunctions
的实例。然后,此方法调用的语法如下所示:
Cursor mycursor = ...;
DBFunctions myFunctions = new DBFunctions();
myFunctions.checkExistence(mycursor);
或者,如果您想避免创建DBFunctions
的实例,可以将static关键字添加到方法声明中,例如:
public static void checkExistence(Cursor check) {
String sql = "SELECT * FROM option WHERE id = 1";
check = db.rawQuery(sql, null);
}
然后,您可以在没有DBFunctions
实例的情况下调用静态方法:
DBFunctions.checkExistence(mycursor);