익명의 내부 클래스에서 초기화되지 않았을 수 있습니다 나의 코드 초기화되지 않았습니다. 이 문제를 해결할 방법이 있습니까? 나는 잠재적으로 null을 콜백을 설정할 수 있습니다. 객체를 생성 한 다음 나중에 변경하면 콜백을 설정할 수 있지만 더 깨끗한 방법이되기를 바랍니다. 어떤 아이디어? (Foo가 저에게 쓰여지지 않았고 나중에 콜백을 변경하기위한 인터페이스를 공개하지 않으면 작동하지 않습니다)최종 지역 변수가 여기에
내 특정 시나리오에서 Foo가 ArrayAdapter이고 bar는 notifyDataSetChanged()입니다. 어댑터가 표시하는 내용은 배열의 항목 값에 따라 달라지며 해당 값을 클릭하면 변경됩니다. 콜백은 clickListener입니다.
당신은 포함하는 클래스의 방법callBarOnMyFoo
를 선언하고 콜백에서 호출 할 수
:
을 그리고 다음과 같이 사용 _this.bar() _ 또는 _bar() _?를 참조하십시오. –
아니요, 실제 코드가이 예제보다 복잡하며 콜백이 다른 익명 내부 클래스에 있습니다 – Drew
왜 notifyDataSetChanged를 재정의하겠습니까? API 문서에서 myFoo.registerDataSetObserver (new DataSetObserver() {})를 호출해야합니다. – sharakan