직관적이지만 아마 정통이지 않은 지름길을 사용하고 있습니다. 문제가 발생할 수 있는지, 나쁜 형식인지, 또는 그것을하는 다른, 더 받아 들여진 방법이다.안드로이드 - int 값 0을 "null"로 사용 - R.drawable에 해당함
바로 가기는 : R.drawable 상수 인 int를 예상하는 함수에서 "null"을 전달하는 것과 같은 역할을하기 위해 0을 사용하는 경우가 있습니다. 지금까지 내가 원하는 일을 한 것, 즉, 지금까지 나는 더 부작용이 관찰되지 않은 -
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 이런 종류의 상황에서 "null"로 인식되지만 공백이되는 공식 정수 값의 경우 S'dTFW. 그런 가치가 있는지 아는 사람 있습니까?
편집 : 태그 "r"이 내가 원하는 것을 언급하지 않는다는 것을 알고 있습니다. 그러나 "android.R"태그는 존재하지 않는 것 같습니다. 나는 지금 태그를 제거 할 것 같아.
답변을 수락하면 현재 내 질문에 답변 할 수없는 것 같습니다. 그러므로 저는 이것을 코멘트로 남겨 두었습니다. ImageView 소스 코드를 살펴보면 비트 맵이나 다른 드로어 블을 설정하면 mResource 값을 0으로 설정하는 것 같습니다. 또한 mResource 값이 많이 사용될 때마다! = 0 검사로 보호됩니다. 이것은 0이 특별한 값이라는 것을 강력하게 지원합니다; 실제 리소스는 할당 된 값으로 '0'을 갖지 않습니다. 이것은 0을 null로 사용하는 것이 안전하다고 조심스럽게 믿는다. 여전히 나쁜 형식이지만, 아래의 대답을 참조하십시오. – Cephron