Android - 从另一种方法获取价值

时间:2012-04-05 18:02:49

标签: android class methods call

我仍然对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”。如果参数内的光标正确,请同意我。

4 个答案:

答案 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);