0

私はまだ Java に少し慣れていないので、Android プログラミングに直行したので、いくつかのプログラミング手法で少し混乱しています..このメソッドを別のクラスから OnCreate() に呼び出すにはどうすればよいですか? 私のメソッドは DBFunctions.java にあります。基本的に、これをゲームのオプションで使用します。

public void checkExistence(Cursor check) {
    String sql = "SELECT * FROM option WHERE id = 1";
    check = db.rawQuery(sql, null);`
}

これを OnCreate() で呼び出したいと思います。値が存在する場合は、最初に「値が存在します」、そうでない場合は「値が存在しません」と表示したいだけです。パラメータ内のカーソルが正しい場合も修正してください..

4

4 に答える 4

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 */
}
于 2012-04-05T18:14:45.680 に答える
0

まず、Cursor をメソッドでローカル変数として宣言する必要があります。Cursor を取得した後、値が存在するかどうかを確認し、ブール値を返します。メソッドのプロトタイプは次のようになります。

public boolean checkExistence()

onCreate メソッドから、これを次のように呼び出します。

if (new DBFunctions().checkExistence()) {
    // do something
} else {
   // do something else
}
于 2012-04-05T18:07:57.060 に答える
0

他のクラスであるメソッドを呼び出したい場合は、以下のようにクラス名を参照して呼び出すことができます:::(その関数を静的にする)

ClassName.FunctionName() それだけです....

void が戻り値の型を使用する場合でも、代わりに関数から値を返すことができます...

于 2012-04-05T18:08:06.000 に答える
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);
于 2012-04-05T18:10:02.363 に答える