java - Android - getType(int) 未定义 Cursor 类型

标签 java android cordova cursor phonegap-plugins

我是移动开发新手,所以我决定使用 Phonegap 来开发我的应用程序。在我的应用程序中,我使用 SQLite 插件,因为 WebSQL 没有满足我的需要。当我尝试将使用该插件所需的文件之一放入我的项目中时,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,我无法弄清楚这一点,并且我在搜索中没有找到任何内容,但我可能丢失了一些东西。希望有人能帮助我,谢谢

最佳答案

您的目标 Android 版本是哪个? getType method was added in API 11 (蜂窝)。

您可以在标题右侧看到此内容(“自:API 级别 11”),并且您可能会发现引用页面顶部的“按 API 级别过滤”框很有用。

关于java - Android - getType(int) 未定义 Cursor 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413327/

相关文章:

javascript - 如何为登录用户更改 ionic 侧菜单

java - 在 BufferedReader 中获取 read() 返回的字符

android - 在新 Material 设计中,是否有像流行的 Android 应用程序那样在工具栏上居中标题的官方 API?

android - fragment 中的多个音频

安卓 Intent 服务

ios - 在 IOS Ionic 2 上打开外部 URL

javascript - 更改全局变量值在 JavaScript 中不起作用

java - JDBC:多列 IN 查询

java - @Autowired 不在构造函数中创建成员

java - 如何在 JButton 工作期间更改 JLabel 文本?