#android
#Android
Вопрос:
можно ли отформатировать текст элемента в Listview, чтобы он выглядел, например, так:
часть строки выделена жирным шрифтом, а часть — нет
Спасибо
Комментарии:
1. вы используете стандартные адаптеры или пользовательский адаптер для просмотра списка?
Ответ №1:
Да, вам просто нужно иметь два разных textview, один для выделенного жирным шрифтом текста, а другой для выделенного текста. Таким образом, у вас будет макет для каждой строки, который выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<TextView android:id="@ id/bold_field"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textStyle="bold"
/>
<TextView android:id="@ id/non_bold_field"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
/>
</LinearLayout>
Затем вы должны использовать SimpleAdapter для сопоставления соответствующих фрагментов строки с каждым TextView. Если вы хотите, чтобы строка выглядела бесшовной, вам, вероятно, придется повозиться с серьезностью текстовых представлений.
Комментарии:
1. но… Возможно, я должен попробовать. Мне понравился ListView, но это кажется единственным способом
2. Это не так уж плохо, если подумать. 🙂
3. хорошо, я не хочу тратить время на его попытки, а затем обнаруживаю, что не могу использовать его из-за «чего-то»;) Так что, чтобы быть уверенным, он создает что-то с макетом, похожим на таблицу HTML? <таблица><tr><td></td><td></td></tr></таблица>. Каждый TextView похож на <td> в каждом <tr> ? Надеюсь, это не так безумно сложно 🙂
Ответ №2:
Вот способ форматирования ваших строк..
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="part_bold"><b>%1$s</b> %2$s</string>
</resources>
Resources res = getResources();
String part_bold_text = String.format(res.getString(R.string.part_bold), bold_string, normal_string);
строка в xml имеет 2 аргумента, один выделен жирным шрифтом, другой — обычный. используйте это, чтобы получить строку ( part_bold_text
), часть которой выделена жирным шрифтом, а часть — обычным шрифтом.
HTH.
Комментарии:
1. Разве это не предполагает, что строки являются статическими и находятся в файле ресурсов xml?
2. Это не работает. Форматирование является нормальным, когда я помещаю эту строку в Listview