最近,我正在研究一個應用程序以顯示數組適配器中的某些文件信息。Java中的字符串追加操作符
所以我的代碼如下所示:
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() : "");
正如你可以看到我添加項目到ArrayAdapter有三個主要途徑:
- 通過使一個串出的區段列的。
- 通過在ArrayAdapter的parametrized add()方法中直接添加兩個字符串,而無需在兩個段上使用toString()方法。
- 通過在兩個段上使用toString()方法直接在ArrayAdapter的parametrized add()方法中添加兩個字符串。
我在案例1 & 3和2
得到不同的結果在這兩個1和3的情況下,我得到預期的結果
- 目錄名稱:貓
- 目錄Md5校驗和:'check_sum'
但在案例2中,我得到這個:「mime/type」(沒有附加「Directory Mime Type:」!!!) 並且在某些情況下當mimetype爲空時,我得到一個NULL POINTER EXCEPTION。
任何人都請解釋我這裏發生了什麼。
你需要檢查是否覆蓋了itemSelectedFile.getMd5Checksum()對象的toString方法.... –
好主意,我會檢查出來。 –