0

내 목표는 메신저 활동을 작성하는 것입니다. 현재 구현 된 메시지의 두 종류가 있습니다 :
- 나는 asynchronically 내 DB에서 메시지 테이블을 쿼리하기 위해 LoaderManager.LoaderCallbacks 함수를 사용하여 내 메신저 활동에서 갤러리
-
간단한 텍스트입니다. 그 쿼리는 다른 정보들 사이에서 반환합니다 :
- 어떤 종류의 메시지입니까 (단순 텍스트 또는 갤러리)
- 유형별 테이블에서 해당 데이터의 ID는 무엇입니까 (갤러리는 그림, 예)

이제 간단한 텍스트 용 조각과 갤러리 용 조각이 생겼습니다. 이들은 데이터의 ID가 필요하고 로더를 사용하여 DB의 테이블을 쿼리합니다. 이상적으로는 필자가 가지고있는 모든 메시지에 해당 유형별 Fragment를 동적으로 추가하는 것입니다. 의사 코드에서

:
로더 결과에 따라 조각 추가

function allMessagesAreLoaded() { 
    for (message : messages) { 
     if message is simpleTextMessage then 
      add simpleTextMessageFragment 
     else if message is gallery then 
      add galleryFragment 
     end if 
    } 
} 
내 질문에 이제



: http://www.androiddesignpatterns.com/2013/08/fragment-transaction-commit-state-loss.html
방식은 무엇입니까 :
그것은이 소스에 따라이 경우 조각을 사용하는 가장 좋은 방법은 아니다 캡슐화 된 레이아웃과 기능/DB 쿼리 결과에 따라 런타임 동안 프로그래밍 방식으로 추가 할 수있는 클래스를 가지고 갈까?

아마도 나는 잘못된 방향에서 그것을보고 있습니다. Android 사용자 인터페이스를 만드는 데 경험이 없습니다. 올바른 방향으로 팁/포인트를 사용하면 많은 도움이됩니다 .-)

도움 주셔서 감사합니다.

답변

0

이것이 좋은 해결책인지 확실하지 않지만 이것이 지금 내가 한 것입니다.
나는 조각에있는 모든 것을 가져 와서 별도의 클래스에 넣었습니다. Context 및 LoaderManager를 Activity에서 클래스 객체로 생성 할 때 Handover합니다. 그런 식으로 작동하고 코드가 캡슐화됩니다. 활동에는 코드가 훨씬 적습니다. 그래서 나는 내 목표에 도달했다. 아마 더 좋은 방법이있을 것이다.

관련 문제