2011-07-14 8 views
0

私はユーザーの呼び出しのリストを取得しようとしていますが、私はillegalargumentexceptionを取得しています: '_id'列が存在しません。illegalargumentexceptionを与えるAndroidのコールログのクエリ: '_id'列が存在しません

これは、私が作成したコール・ログ・テーブルとは何も関係がないため、本当に奇妙です。私はそれを照会しようとしています。私のコードは次のとおりです:

String[] strFields = { 
      android.provider.CallLog.Calls.NUMBER, 
      android.provider.CallLog.Calls.TYPE, 
      android.provider.CallLog.Calls.DATE, 
      android.provider.CallLog.Calls.DURATION 
      }; 

String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; 

callCursor = getContentResolver().query(
      android.provider.CallLog.Calls.CONTENT_URI, 
      strFields, 
      null, 
      null, 
      strOrder 
      ); 



    // THE DESIRED COLUMNS TO BE BOUND 
    String[] columns = new String[] { android.provider.CallLog.Calls.DATE, 
            android.provider.CallLog.Calls.DURATION, 
            android.provider.CallLog.Calls.TYPE, 
            android.provider.CallLog.Calls.NUMBER }; 

...そして、私はいくつかのListView /カーソルアダプターのことをします。

私はこのクエリで間違っていることがありますか?通話記録にアクセスするための代替ソリューションはありますか?

ありがとうございました。

答えて

3

あなたはcallCursorは「_id」という名前の列を含める必要がありますCursorAdapterを使用している場合は、それ以外のアダプタは動作しません(CursorAdapter

はあなたのstrFieldsアレイにこの文字列を追加する必要があります

android.provider.CallLog.Calls._ID 

あなたのCursorAdapterは正常に動作するはずです

+0

あなたは素晴らしいです。どうもありがとうございます。 – JDS

+0

うれしい私は助けることができる:) – kuxi

関連する問題