가 아닌 뷰 클래스에서 메시지 박스를 열어야하는 경우
하면 컨텍스트 통과 mecanism와 메모리 누수에주의
편집 : 나는 기회를 데려 갔다 할 때
난 당신이 핸들러를 사용하는 방법에 가야하는 몇 가지 코드를 작성했다 의사. 일반적으로 거기에 아무것도 사용하지만,이 특별한 경우에, 오, 기적, 내가 찾은, 완성 및 핸들러와 메시지 메카니즘을 사용하는 방법의 코드 예제를 이해하기 쉽습니다보세요. http://developer.android.com/guide/topics/ui/dialogs.html#ShowingAProgressBar이
EDIT2 후 연산 때문에
논평 : 그것은 접을 제목 ("http://developer.android.com/guide/topics/ui/dialogs.html#ShowingAProgressBar") 아래에 숨겨져있다 객체를 다른 활동에서 재사용 할 수 있기를 원한다면 핸들러를 사용하지 말고 컨텍스트 (실제로 호출하는 활동에 대한 링크)를 객체에 전달하는 것이 좋습니다. 그러면 객체는 dialog.builder에서이 컨텍스트를 사용할 수 있습니다.MyActivity라는 활동 클래스의 한 OnCreate에서
: 개체 클래스에서
MyCustomObject myObject = new MyCustomObject(this);
Class MyCustomObject {
private MyActivity mContext;
void MyCustomObject(MyActivity context) {
this.mContext = context;
}
private showDialog(String message) {
AlertDialog.Builder alert = new AlertDialog.Builder(mContext);//we use the context
}
}
파괴하는 것을 잊지 마세요 및 무효화 대화 빌더 제품과 mContext 당신이 함께 할 때 너의 물건. 이렇게하면 메모리가 정말 빨리 누출 될 수 있습니다.
뷰 내 getParent는 표시되는 대화 상자에 유효하지 않은 ViewParent 객체를 반환합니다. 나는 또한 생성자를 통해 클래스에 액티비티를 전달하고 getParent를 사용하여 시도해 보았습니다 ... –