2012-05-02 16 views
2

私はモバイル開発で新しく、Phonegapを使用してアプリケーションを開発することにしました。私のアプリでは、SQLiteプラグインを使用しています。なぜなら、WebSQLは自分の必需品には参加していないからです。私は私のプロジェクトでプラグインを使用するために必要なファイルのいずれかを置くしようとすると、私は次の関数でエラーを返すECLIPSE:20行目でAndroid - getType(int)型がCursorタイプで定義されていません

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 + ");"); 

} 

(私たちは、「スイッチ(cur.getType(私を持っている場合)) ")、Eclipseは以下のエラーを返します:私はこれを見たとき

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

、私はそれをグーグルで試みたが、Androidのドキュメント上のgetTypeは、カーソルのメソッドであることを述べています。

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を知らない、私はこれを理解できなかったと私は私の検索では何も見つかっていないが、私は何かが足りないことがあります。ここ

は、このファイルのインポートとは何か。誰かが私に助けてくれることを願っています。

答えて

3

どのAndroidバージョンが対象ですか? getType method was added in API 11(ハニカム)。

ヘッダーの右側に( 'Since:API Level 11')と表示され、参照ページの上部にある[APIレベルでフィルタリング]ボックスが便利です。

+0

残念ながら、すべてのCursor列を自動的にハニカム前に反復処理することはできません。データベースの場合は、列の型(指定したとおりに)を知ることになります。それ以外の場合は、ドキュメントに従ってください。たとえば、[ContactsContract.ContactsColumns](http://developer.android.com/reference/android/provider/ContactsContract.ContactsColumns.html#DISPLAY_NAME)は型を指定しています。コードを修正して、各列を正しい型としてフェッチする必要があります。 –