0

SDカードに曲があり、その曲のタイトルを取得しようとしています。

File f = new File(filename);

String[] projection = { MediaStore.Audio.Media._ID, 
                        MediaStore.Audio.Media.ARTIST,
                        MediaStore.Audio.Media.TITLE,
                        MediaStore.Audio.Media.DATA, 
                        MediaStore.Audio.Media.DISPLAY_NAME,
                        MediaStore.Audio.Media.DURATION};

Cursor musiccursor = managedQuery(Uri.fromFile(f), 
                        projection, null, null, null);
musicTV.setText(musiccursor.getString(3));

しかし、最後の行に私は持っていNullPointerExceptionます。アドバイスありがとうございます。

4

2 に答える 2

0

カーソルを使用している場合、コンテンツを取得するときに、カーソルが最初の要素の前を指しているため、カーソルを最初の要素に移動する必要があります。使用してみてください:

Cursor musiccursor = managedQuery(Uri.fromFile(f),  projection, null, null, null);
cursor.moveToFirst();
musicTV.setText(musiccursor.getString(3));
于 2012-12-07T16:28:11.373 に答える
0

これを見たことがあります?

  1. デバイスのクエリ
  2. 初期カーソル
  3. トラバース カーソル

難しいのは、列の抽象的な性質を理解することです。これはデータベース テーブルであり、スプレッドシートとして視覚化できることを覚えておいてください。キャッチステートメントを忘れないでください!

于 2012-12-07T16:30:55.740 に答える