2
특정 위젯을 확장하는 클래스에서 위젯의 상태 저장을 비활성화하려면 어떻게합니까? 나는 그것이 새로 만들어진 것처럼 행동해야합니다.안드로이드 상태 저장 안 함
특정 위젯을 확장하는 클래스에서 위젯의 상태 저장을 비활성화하려면 어떻게합니까? 나는 그것이 새로 만들어진 것처럼 행동해야합니다.안드로이드 상태 저장 안 함
어떤View
그 상태를 유지하는 것을 방지하는 쉬운 방법이 뷰 (즉, 더 android:id="..."
)에 ID를 할당 할 것이다.
충분하지 않아도보기를 참조해야하는 경우 다음 트릭을 사용할 수 있습니다. View
의 onSaveInstanceState()
하고 다음과 같은 방법으로 onRestoreInstanceState()
를 오버라이드 (override) :
@Override
public Parcelable onSaveInstanceState()
{
super.onSaveInstanceState();
return null;
}
@Override
public void onRestoreInstanceState(Parcelable state)
{
super.onRestoreInstanceState(null);
}
들은이 개 기능이 공개되어, 보호되지 않습니다. 전에 이미 onRestoreInstanceState를 재정의하려고했습니다. 그것은 충돌하고 logcat은 내가 super 함수를 호출하지 않았기 때문이라고 말합니다. 어쨌든, onSaveInstance 상태에서 무엇을 반환해야합니까? –
설명서에서 함수 프로토 타입을 복사했으며 거기에서 보호되었습니다. 하지만 당신 말이 맞아요, 그들은 공개적입니다. 또한 답변을 업데이트하고 이제 테스트 해 보았습니다. 처음으로 오해 된 것을 유감스럽게 생각합니다. – inazaruk
감사합니다.이 기능을 재정의하는 것이 트릭입니다. –