2011-04-12 5 views
3

a.xml이라는 파일에 ListView가 있습니다.다른 XML 파일에서 뷰 참조하기

<ListView 
     android:id="@+id/mylistview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:scrollbars="none" 
     android:layout_above="XYZ" 
     /> 

a.xml에는 b.xml이라는 다른 파일도 포함되어 있습니다.

<include android:id="@+id/bottombar" layout="@layout/b" /> 

ListView의 설정 중 하나에 대해 b.xml에있는 id (XYZ)를 참조하고 싶습니다.

내가 할 수있는 방법이 있습니까?

나는 다음 시도했다 :

@ 아이디/bottombar_background는 @ 레이아웃/B에 존재하지만 이클립스 나 "아니오 자원"오류가 발생합니다
<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <include android:id="@+id/bottombar" layout="@layout/b" /> 
    <ListView 
     android:id="@+id/mylistview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:scrollbars="none" 
     android:layout_above="@id/bottombar_background" 
     /> 
</RelativeLayout> 

.

+0

"참조"란 무엇을 의미합니까? 적절한 구문은 사용법에 따라 다릅니다. – James

+0

해결책을 찾았습니까? – ffleandro

답변

1

setContentView(R.layout.a)을 사용한 후에 findViewById(R.id.my_id_in_b)을 사용할 수 있습니다.

+2

XML에서이 작업을 수행 할 수있는 방법이 있습니까? – Andrew

+0

예, a.xml에서'android : layout_toLeftOf = "@ id/my_id_from_b"'와 같은 것을 사용할 수 있어야합니다. 매우 중요합니다 : (구문 분석기가 이미 ID를 알아야하기 때문에) 전에는 포함 태그가 아닌 _after_ 포함 태그에서만 작동합니다. – WarrenFaith

+0

시도했습니다. 이클립스에서 @를 참조한 후에도 오류가 발생합니다. id 다음에 포함 태그 – Andrew

0

android : layout_toLeftOf = "@ + id/my_id_from_b"구문을 사용하십시오. 그것은 참조 문제를 방지합니다.

이 인스턴스의 더하기 기호는 두 번째로 해당 ID를 찾는 레이아웃에서 두 번째 단계를 수행하도록 컴파일러에 지시합니다. 그것을 시도해보십시오 - 나는이 구문을 항상 사용하기 때문에 작동한다는 것을 알고 있습니다.

+0

같은 이름의 뷰의 새 인스턴스를 만들지 않습니까? 나는 * layout/b에서 @id를 참조하기를 원합니다 – Andrew

+0

개념을 설명하기 위해 제 대답을 수정했습니다 - 미안하지만 처음으로 잘못된 예를 사용했습니다. –

+0

글쎄, 지금은 컴파일되지만 화면에 @ + id/my_id_from_b가 보이지 않는다. – Andrew

관련 문제