Как оптимизировать «имя класса» в Android XML Layout? - PullRequest
4 голосов
/ 28 декабря 2010

Я использую некоторые пользовательские компоненты в своем проекте, для этого я использую следующий код.

 <view
  class="com.android.mypackage.myclass" 
  id="@+id/button"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="@android:drawable/button"
  android:padding="10dip"
  />

Он работает отлично, я использую этот код около 35 раз в моем приложении. поэтому при создании нового приложения-клона из того же проекта мне нужно обновить имя пакета в 35 местах. Есть ли способ уменьшить эти усилия? Я пытался с "class =" @ string / class_name ", но он не работает.

Ответы [ 2 ]

1 голос
/ 29 декабря 2010

Не кладите свои собственные представления в оригинальную упаковку, а просто поместите их в другую упаковку.
Вы также можете разместить их как на следующем рисунке.
alt text

И код в макете XML похож на

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
 >
<MyView
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/>
</LinearLayout>

Это удобнее.

0 голосов
/ 28 декабря 2010

Нет.У вас есть только альтернатива написать:

<com.android.mypackage.myclass
    id="@+id/button"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:drawable/button"
    android:padding="10dip" />

class="@string/class_name не работает, потому что имя класса должно быть постоянным и быть доступным во время компиляции при генерации кода Java из XML.

@string/class_name означает, что значение поля R.string.class_name «динамически» читается во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...