2016-07-12 2 views
1

이것은 내가 팽창하고있어 항목입니다 :레이아웃 인플레이터를 사용하여 사용자 정의 메뉴 만들기, 각 구성 요소를 어떻게 참조합니까?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:background="@drawable/background_border" 
    android:padding="10dp" 
    > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Account name" 
     android:textSize="25sp"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Balance: £61.43" 
     android:textSize="25sp" 
     android:paddingTop="40dp"/> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_keyboard_arrow_right_black_24dp" 
     android:layout_alignParentEnd="true" 
     android:layout_centerInParent="true"/> 

</RelativeLayout> 

그리고 나는 다음과 같은 코드를 사용하여 팽창 해요 : 나는 세 가지 메뉴를 만들려면 다음 항목을 세 번 팽창하면

LinearLayout parent = (LinearLayout) findViewById(R.id.linearL); 

view = getLayoutInflater().inflate(R.layout.menu_item, parent,false); 
parent.addView(view); 

말을 items - 각 항목을 개별적으로 참조하려면 어떻게합니까?

예를 들어, 메뉴의 첫 번째 항목에서 계정 이름의 텍스트를 변경하려면 두 번째 또는 세 번째 대신 메뉴의 첫 번째 항목에 어떻게 참조 할 수 있습니까?

+0

linearL은의 레이아웃입니다 XML 파일? – aurelianr

+0

@aurelianr 선형 레이아웃은 메뉴 항목을 팽창시키는 주요 활동의 레이아웃입니다. –

답변

3

다음 항목을 세 번 팽창 시켜서 세 개의 메뉴를 만들면 항목 - 각 항목을 개별적으로 어떻게 참조 할 수 있습니까? 추가

레이아웃을 여러 번 : 원하는 R.layout.menu_item 레이아웃에서 뷰를 액세스하기위한

사용 parent.getChildCount()parent.getChildAt()은에서

View firstView=parent.getChildAt(0); 

:

//First time 
parent.addView(view); 
//Second time 
parent.addView(view); 

먼저 R.layout.menu_item 레이아웃보기를 추가하기 같은 방법으로 다른 아이를 얻으십시오. 0123의 전망레이아웃. 사용 firstView에서

액세스 아이 조회수 :

TextView textView=(TextView)firstView.findViewById(R.id.textViewID); 

또는 사용 getChildAt 방법 : 동일한에서

TextView textView=(TextView)firstView.getChildAt(0); 

액세스 다른 뷰

보기 ID는 XML에 추가 한 경우 방법.

+0

굉장하고, 내가 뭘 찾고 있었는지 고마워. –

0
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:background="@drawable/background_border" 
    android:padding="10dp" 
    > 

    <TextView 
     android:id="@+id/account_name_text_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Account name" 
     android:textSize="25sp"/> 

    <TextView 
     android:id="@+id/balance_text_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Balance: £61.43" 
     android:textSize="25sp" 
     android:paddingTop="40dp"/> 

    <ImageView 

     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_keyboard_arrow_right_black_24dp" 
     android:layout_alignParentEnd="true" 
     android:layout_centerInParent="true"/> 

</RelativeLayout> 

그리고 레이아웃 내부 활동 XML은이 같은 텍스트 뷰에 액세스해야하는 경우 코드에서 당신이

TextView textview = (TextView)relativeLayoutFromXml.findById(R.id.balance_text_view); 

textview.setText("sadsasa "); 

같은 몇 가지 일을해야합니다 :

TextView textview = (TextView) findViewById(R.id.balance_text_view); 

textview.setText("sadsasa "); 
+1

내가 찾던게 아니야. 아마 내가 불분명 했는지도 몰라. 어쨌든 고마워요 :) –

+0

당신은 오신 것을 환영합니다. – aurelianr