2012-12-01 2 views
-1

Fristly Я очень новичок в android, и у меня есть два android: id.Комбинируйте два простых андроида: id или (R.id)

Например: [R.id.custom_font] и [R.id.product_name]

В .java файл

TextView tv = (TextView)findViewById(R.id.custom_font); 
Typeface cFont = Typeface.createFromAsset(getAssets(), "fonts/jcc.ttf"); 
tv.setTypeface(cFont); 


adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, R.id.custom_font, products); 
lv.setAdapter(adapter); 

Когда я положил их в единый текст просмотра показан сообщение об ошибке [Атрибут "андроид: идентификатор" уже указан для элемента "TextView"]

В XML-файле

<TextView 

    android:textColor="?android:textColorPrimary" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/custom_font" 
    android:id="@+id/product_name" //Attribute "android:id" was already specified for element "TextView" 
    android:textSize="15sp" /> 

Как передать два андроида: id в виде одного текста?

Или кто-нибудь, если любезно помочь мне Download This

Спасибо заранее.

+1

Почему бы не использовать один и тот же идентификатор как для TextView tv = (TextView) findViewById (R.id.custom_font); 'и' adapter = new ArrayAdapter '? –

+0

** «Как я могу передать два андроида: id в виде одного текста?» ** - Вы не можете ... это так просто. То, что говорит Ахмад, истинно - у вас может быть только один идентификатор ресурса для любого элемента интерфейса (виджета). Именно поэтому вы получаете ошибку. – Squonk

+0

@Squonk Я нашел об использовании пользовательского шрифта в android [здесь] (http://www.barebonescoder.com/2010/05/android-development-using-custom-fonts/). Предположим, что здесь есть 'android: id' ** android: id =" @ + id/CustomFontText "** Но в моем проекте у меня уже есть ** android: id =" @ + id/product_name "**, которые отображают мои имя продукта в списке. ** Итак, как я могу реализовать оба вместе? ** Если я использую «оба идентификатора» или «тот же идентификатор». Эмулятор показывает сообщение об ошибке ** «Приложение неожиданно остановилось. Повторите попытку позже!». ** Я действительно беспомощен! –

ответ

1

Вы можете установить только один идентификатор в виджет пользовательского интерфейса. Удалите один из идентификаторов. Вы можете использовать один и тот же идентификатор для вашего ArrayAdapter.

0

Практически тот же ответ, как Ахмад, но на основе комментариев, вам не кажется, чтобы получить его, так что изменить XML, как это (удалить строку, которая дает ошибку):

<TextView 
android:textColor="?android:textColorPrimary" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/custom_font" 
android:textSize="15sp" /> 

Затем измените код Java, как это:

TextView tv = (TextView)findViewById(R.id.custom_font); 
Typeface cFont = Typeface.createFromAsset(getAssets(), "fonts/jcc.ttf"); 
tv.setTypeface(cFont); 


adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.custom_font, R.id.custom_font, products); 
lv.setAdapter(adapter); 

Если когда-нибудь ваша проблема с двумя аргументами конструктора для ArrayAdapter, что такие же, что вас беспокоит, попробуйте, как это ...

Изменение XML так:

<FrameLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/product_name"> 

<TextView 
android:textColor="?android:textColorPrimary" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/custom_font" 
android:textSize="15sp" /> 

</FrameLayout> 

Тогда вы можете сохранить тот же код Java, как то, что вы имели ...

Если это еще не решить, я действительно недоумевали, в чем ваша проблема на самом деле.

Смежные вопросы