0

最近、私は、Array Adapter でいくつかのファイル情報を表示するアプリケーションに取り組んでいました。

だから私のコードは次のようになります:

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
        .setIcon(R.drawable.ic_launcher).setTitle("Details");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
         DriveActivity.this, android.R.layout.select_dialog_item);
// Case 1
String DIR_NAME = "Directory Name : " + 
         (itemSelectedFile.getTitle() != null ? itemSelectedFile.getTitle() : "");

arrayAdapter.add(DIR_NAME);
// Case 3
arrayAdapter.add(("Directory Md5 Checksum : " + 
                  (itemSelectedFile.getMd5Checksum() != null ?
                       itemSelectedFile.getMd5Checksum(): "").toString()));

// Case 2
arrayAdapter.add("Directory Mime Type : " + 
                 itemSelectedFile.getMimeType() != null ?
                     itemSelectedFile.getMimeType() : "");

ご覧のとおり、次の 3 つの方法で項目を ArrayAdapter に追加しています。

  1. セグメント文字列から文字列を作成する。
  2. 2 つのセグメントで toString() メソッドを使用せずに、ArrayAdapter のパラメータ化された add() メソッドに 2 つの文字列を直接追加する。
  3. 2 つのセグメントで toString() メソッドを使用して、ArrayAdapter のパラメータ化された add() メソッドに 2 つの文字列を直接追加する。

ケース 1 と 3 と 2 で異なる結果が得られます

1と3の両方の場合、期待される結果が得られます

  1. ディレクトリ名 : 猫
  2. ディレクトリ Md5 チェックサム: 'check_sum'

しかし、ケース 2 では、「mime/type」( 「Directory Mime Type :」を追加せずに!!!) を取得し、mimetype が null の場合は、NULL POINTER EXCEPTION を取得しています。
誰でもここで何が起こっているのか説明してください。

4

2 に答える 2