我使用了一種直觀但也許非正統的捷徑,我只是想知道它是否會導致問題,是不好的形式,還是如果有是一種不同的,更爲接受的方式。Android - 使用int值0作爲「null」 - 等價於R.drawable
這個快捷方式是:在一個函數中,這個函數需要一個作爲R.drawable常量的int類型,我有時候會使用0作爲傳遞「null」的等價函數。
這裏有一種模板的我如何使用這樣的:
int someDrawable = isSomeCondition() ? R.drawable.somedrawable_identifier : 0; mHandler.post(new UpdateSomeUI(someDrawable));
//and, elsewhere in the application,
private class UpdateSomeUI implements Runnable {
private final int someDrawable;
public UpdateSomeUI(int someDrawable) {
this.someDrawable = someDrawable;
}
public void run() {
mSomeImageView.setImageResource(someDrawable);
}
}
看來工作 - 也就是說,到目前爲止,它一直在做我想要的,到目前爲止,我還沒有發現不良影響像設備內的崩潰或量子奇點的產生。
這是安全嗎? 這是不好的形式? I S'dTFW對於某些官方的整數值,在這種情況下會被識別爲「空」,但空了。有誰知道這樣的價值是否存在?
編輯: 我意識到標籤「r」不是指我想要的。然而,標籤「android.R」似乎並不存在。我想我現在會刪除標籤。
已經接受了答案,我似乎無法回答我自己的問題。因此,我將此留作評論。 縱觀ImageView源代碼,似乎設置位圖或其他可繪製設置mResource值爲零。此外,每當mResource值被顯着使用時,它都會被一個!= 0檢查保護。這非常強烈地支持0是一個特殊的值;沒有實際的資源會有'0'作爲它的分配值。這使我謹慎地認爲使用0作爲null是安全的。儘管如此,仍然不好,請參閱下面的接受答案。 – Cephron 2011-02-28 22:00:21