2

私はモバイル開発が初めてなので、Phonegap を使用してアプリケーションを開発することにしました。私のアプリでは、WebSQL が私の必需品に対応していないため、SQLite プラグインを使用しています。プロジェクトでプラグインを使用するために必要なファイルの 1 つを配置しようとすると、Eclipse は次の関数でエラーを返します。

public void processResults(Cursor cur, String query_id, String tx_id) {

    String result = "[]";
    // If query result has rows

    if (cur.moveToFirst()) {
        JSONArray fullresult = new JSONArray();
        String key = "";
        int colCount = cur.getColumnCount();

        // Build up JSON result object for each row
        do {
            JSONObject row = new JSONObject();
            try {
                for (int i = 0; i < colCount; ++i) {
                    key = cur.getColumnName(i);
                    // for old Android SDK remove lines from HERE:
                    if(android.os.Build.VERSION.SDK_INT >= 11)
                    {
                        switch(cur.getType (i))
                        {
                            case Cursor.FIELD_TYPE_NULL:
                                row.put(key, null);
                                break;
                            case Cursor.FIELD_TYPE_INTEGER:
                                row.put(key, cur.getInt(i));
                                break;
                            case Cursor.FIELD_TYPE_FLOAT:
                                row.put(key, cur.getFloat(i));
                                break;
                            case Cursor.FIELD_TYPE_STRING:
                                row.put(key, cur.getString(i));
                                break;
                            case Cursor.FIELD_TYPE_BLOB:
                                row.put(key, cur.getBlob(i));
                                break;
                        }
                    }
                    else // to HERE.
                    {
                        row.put(key, cur.getString(i));
                    }
                }
                fullresult.put(row);

            } catch (JSONException e) {
                e.printStackTrace();
            }

        } while (cur.moveToNext());

        result = fullresult.toString();
    }
    if(query_id.length() > 0)
        this.sendJavascript(" SQLitePluginTransaction.queryCompleteCallback('" + tx_id + "','" + query_id + "', " + result + ");");

}

20 行目 ("switch(cur.getType (i))" がある場合) で、Eclipse は次のエラーを返します。

The method getType(int) is undefined for the type Cursor

これを見たとき、私はそれをグーグルで試してみました.Androidのドキュメントでは、getTypeはCursorのメソッドであると書かれています.

このファイルがインポートするものは次のとおりです。

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult;
import android.database.Cursor;
import android.database.sqlite.*;
import android.util.Log;

Javaを知らないので、これを理解できず、検索で何も見つかりませんでしたが、何かが欠けている可能性があります. 誰かが私を助けてくれることを願っています、ありがとう

4

1 に答える 1

3

どのバージョンのAndroidをターゲットにしていますか?getTypeメソッドはAPI11(Honeycomb)で追加されました。

これはヘッダーの右側に('以降:APIレベル11')として表示され、リファレンスページの上部にある[APIレベルでフィルター]ボックスが役立つ場合があります。

于 2012-05-02T12:04:36.430 に答える