В чем разница между этим макетом XML и соответствующим макетом Java? - PullRequest
0 голосов
/ 28 марта 2012

Этот следующий XML производит большой жирный текст, который я ищу.

    <TextView
    android:layout_width="match_parent"
    android:layout_height="44dp"
    android:background="#000000"
    android:gravity="center"
    android:text="Review"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#ffffff"
    android:textStyle="bold" />

Я бы подумал, что эта Java будет делать то же самое, но вместо этого я получаю не выделенный жирным шрифтом текст по умолчанию. Что дает?

    LinearLayout container = new LinearLayout(this);
    container.setOrientation(LinearLayout.VERTICAL);
    container.setBackgroundColor(Style.backgroundColor);    

    TextView header = new TextView(this);
    header.setText("Review");
    header.setBackgroundColor(Color.BLACK);
    header.setTextColor(Color.WHITE);
    header.setGravity(Gravity.CENTER);
    header.setTypeface(Typeface.DEFAULT_BOLD);
    header.setTextAppearance(this, android.R.attr.textAppearanceLarge);

    float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 44, getResources().getDisplayMetrics());
    container.addView(header, LayoutParams.MATCH_PARENT, (int)px);

(И прежде чем вы ответите «Просто используйте XML», я не могу. Это должно быть красиво упаковано в банку.)

Ответы [ 2 ]

0 голосов
/ 29 марта 2012

Попробуйте использовать альтернативный конструктор:

TextView header = new TextView(this, null, android.R.attr.textAppearanceLarge);

И не звоните setTextAppearance позже. Я предполагаю, что textAppearanceLarge отменяет настройку, выделенную жирным шрифтом, которую вы установили заранее.

0 голосов
/ 29 марта 2012

хорошо, использование вашей пользовательской реализации представления "почти" аналогично использованию кода XML, однако в Android есть некоторые "ошибки", когда вы пытаетесь наполнить свой пользовательский вид, выполняя все это на Java;Я знаю это наверняка, так как я пробовал это раньше, и использование моего макета в XML работает нормально, а использование моего пользовательского макета Java просто не загружалось хорошо ... Другими словами, нет большой разницы, но вам придется написатьнемного больше кода, и ваше приложение подвержено таким маленьким ошибкам, как эта.вот ссылка на ветку, где я спрашивал это время назад: Разработчики Android, группа Google

Примечание : вы можете просто упаковать свой проект в файл jar, но Androidприложения используют APK для установки.Я не уверен, что вы можете установить файлы jar-приложений, но не думаю, что это возможно.

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