2013-05-29 68 views
0

我是一個新手Android。我可以這樣做:我有一個包含一個線性佈局的xml文件:如何從佈局文件初始化UI組件

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linearLayoutID" 
    android:orientation="vertical" 
    android:layout_width="150dp" 
    android:layout_height="150dp" 
    android:gravity="center"> 

    <ImageView 
      android:id="@+id/imageID"    
      android:contentDescription="@string/nothing"    
      android:layout_width="80dp" 
      android:layout_height="80dp"    
      android:scaleType="centerCrop" 
      /> 

    <TextView 
      android:id="@+id/textID" 
      android:layout_width="wrap_content" 
      android:layout_height="40dp" 
      android:textIsSelectable="false"/>  

</LinearLayout> 

從代碼的任何部分,我可以加載到像的LinearLayout:

 
LinearLayout ll = new LinearLayout(R.id.linearLayoutID); 
ImageView iv = (ImageView) ll.findViewById(R.id.imageID); 
TextView iv = (TextView) ll.findViewById(R.id.textID); 

記住的問題,我想要問的是從一個單獨的佈局文件,我們不加載到一個活動或一個片段,從而使用findViewByID,我們直接加載XML文件到像LinearLayout,ImageView的UI組件...

+0

先試試,然後詢問 –

回答

1

從代碼的任何部分,我可以它的廣告到LinearLayout中,如:

不能與代碼,您有:

LinearLayout ll = new LinearLayout(R.id.linearLayoutID); 

相反,使用:

LinearLayout ll = (LinearLayout)getLayoutInflater().inflate(R.layout.whatever_name_you_gave_it, theParentViewGroup, true); 

其中:

  • theParentViewGroup是什麼集裝箱將舉行這個LinearLayout
  • 第三個參數是true如果你想這個LinearLayout加入到容器向右走,或者false如果你將它添加到容器自己(或其他框架的代碼將其添加到容器中,如在getView()上一個ListAdapter