Android - Макет -> Прототип Textview - PullRequest
0 голосов
/ 09 сентября 2011

В моем приложении для Android я создаю интерфейс с примерно 10 Textview с теми же свойствами, за исключением их идентификатора.

Так можно ли создать прототип TextView , который позволил бы мне создать 10 дочерних текстовых представлений?

Мои вопросы касаются Textview , но это то же самое, что и LinearLayout , EditView и т. Д.

Спасибо в

Ответы [ 3 ]

0 голосов
/ 09 сентября 2011

Вы должны иметь возможность установить общие атрибуты в качестве стиля или темы для текстовых представлений

<style name="CustomTheme">     
    <item name="android:textColor">#ff0000</item> 
</style> 

И вы можете установить этот стиль для своей деятельности, например

<textview android:theme="@style/CustomTheme"> 

Документыот гугл даст мо идею и примеры http://developer.android.com/guide/topics/ui/themes.html

0 голосов
/ 09 сентября 2011

Другой подход, если вы хотите все это в XML, это предоставить макет для TextView (my_textview.xml)

<TextView
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:id="@+id/textview" >
</TextView>

А затем в макете, который вы хотите использовать, вы используете include тег, подобный этому:

<LinearLayout>
  <include layout="my_textview.xml" android:id="@+id/firstTextView" />
  <include layout="my_textview.xml" android:id="@+id/secondTextView" />
  <include layout="my_textview.xml" android:id="@+id/thirdTextView" />
  ... Add as many as you want with different ID's ...

</LinearLayout>

Предоставление атрибута id в теге include переопределит идентификатор основного макета / виджета в макете, который вы хотите включить.

0 голосов
/ 09 сентября 2011

Вы можете создать макет с прототипом textview и использовать LayoutInflater для надувания прототипа. Например, вы можете попробовать что-то вроде этого:

LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
textView = (TextView) inflater.inflate(R.layout.textview_prototype, null);
textView.setId();

Вы можете поместить это в цикл, чтобы заполнить все 10 текстовых представлений:)

и textview_prototype может выглядеть так:

<TextView
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content">
</TextView>
...