2017-01-27 1 views
5

Proteus이라는 안드로이드 라이브러리를 사용하여 런타임 중에 서버에 앉아있는 JSON 파일로 레이아웃을 확장합니다. 이 라이브러리는 데이터 바인딩을 허용하지만 내 질문은 어떻게 내 애플 리케이션을 사용하는 동안 이러한 필드의 데이터를 얻을 수 있습니까? 컴파일 중 존재하지 않기 때문에 레이아웃의 식별자를 참조 할 수 없습니다. (R.id.input)이 실제로 실행?런타임 중에 사용할 수있는 TextField 목록을 가져 옵니까?

View view = inflater.infalte(R.layout.fragment_form, container, false); 
TextView textView = (TextView)view.findViewById(R.id.input); 

또는 가능하게 프로그래밍 할 때까지 존재하지 않는 경우 런타임에 사용 가능한 모든 고유 식별자의 목록을 얻을 문에서 오류를 무시하는 방법이 있나요? 모든 정보가 도움이 될 것입니다. 고맙습니다.

답변

2

proteus은 Android XML 레이아웃의 컴파일시 생성 된 int ID와 달리 런타임에보기 ID를 생성합니다. Android와 달리 proteus가 만든 조회수 ID는 String이고 R.id.<something>은 작동하지 않습니다.

Proteus는 String ID로보기를 찾는 유틸리티 메소드를 제공합니다.

레이아웃 :

{ 
    "type": "TextView", 
    "id": "myId" 
} 

자바 :

View view = proteusView.getViewManager().findViewById("myId"); // can be null 

돌려보기도 ProteusView

자세한 내용은 the wiki를 참조하십시오 할 수 있습니다.

위키는 약간 구식입니다. 위의 대답은 5.0.0-rc11 릴리스 이상입니다. 위키는 곧 업데이트되어야합니다.

관련 문제