2012-10-26 5 views
0

이것은 바보 같은 질문 일 수 있습니다. 그렇다면 사과드립니다. 나는 안드로이드에 상당히 익숙하다.ViewStub - 동적 내용이 포함 된보기 표시

어쨌든 - 나는 다른 상황에 따라 다른 레이아웃으로 대체되는 작동하는 ViewStub를 가지고 있습니다. setLayoutResource() 메서드를 호출 한 다음 setVisibility를 VISIBLE로 호출하면 올바른 레이아웃을 표시하는 데 문제가 없습니다. 그러나이 뷰에서 동적 인 쇼가되는 컨텐츠가 필요합니다 (즉, 정적 레이아웃을 표시하는 것보다는 코드를 통해 설정해야 함).

이것도 가능합니까? setLayoutResource() 메서드는 정적 레이아웃 리소스 ID 만 사용하지만 레이아웃 XML 파일을 사용하려면 TextViews에 사용할 준비가 된 일부 코드에서 오는 비 정적 텍스트가 포함될 수 있어야합니다. 가능한 경우 어떻게 접근해야합니까? Java 클래스를 사용하는 개념을 이해하고 필드를 업데이트하기 위해 XML을 부 풀려는 XML 개념을 이해하지만 간단히 레이아웃 리소스이므로 설정하는 데있어 필자의 코드와 어떻게 관련되는지는 알 수 없습니다. ViewStub의 setLayoutResource() 메소드의 경우

필요한 경우 기존 코드를 게시 할 수 있지만 게시물을 어수선하게 만드는 것보다 더 많은 것을 할 수는 없습니다. 참조 용 - 내가 가지고있는 것은 TextViews가있는 간단한 레이아웃 XML 파일이고 사용자 정의 Dialog의 일부인 ViewStub가 포함 된 기본 XML입니다. 사용자는 대화 상자를 인스턴스화하고 레이아웃을 설정하고, ViewStub의 레이아웃을 설정합니다. 이것은 동적 인 내용을 사용해야하는 레이아웃입니다.

모든 조언을 주시면 감사하겠습니다. 감사!

답변

1

이것은 너무 어렵지 않습니다. ViewStub를 팽창시켜 실제 TextView의 사본을 얻은 후에 TextView 레이아웃의 ID를 사용해야하고 원하는 텍스트 유형의 동적/사용자 정의 텍스트를 쉽게 설정할 수있었습니다.

나는 또한 (코드 .inflate() 라인이 표시로 설정 같은 일을 수행) 다음을 수행하는 대신 .VISIBLE 전화를 통해 그것을 보여줍니다 코드를 주석 처리하고 필요 :

View inflatedView = dialog.myStubView.inflate(); 
TextView myTextView = (TextView) inflatedView.findViewById(R.id.my_text_view); 
myTextView.setText("Dynamic/Custom Text"); 
관련 문제