2013-05-29 3 views
0

Я новичок Android. Могу ли я сделать так: У меня есть XML-файл, который содержит линейную компоновку:Как инициализировать компонент пользовательского интерфейса из файла макета

<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, ...

+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)
Смежные вопросы