Возможно ли иметь несколько стилей внутри TextView?

У меня такая же проблема, чтобы решить, а также рассмотреть варианты. Поскольку у меня есть многолетний опыт создания многосайтовых приложений SaaS, я также собирался выбрать второй вариант, основанный на моем предыдущем опыте работы с реляционными базами данных.

Во время моего исследования я нашел эту статью на сайте поддержки mongodb : http://support.mongohq.com/use-cases/multi-tenant.html

Ребята заявили, что избегают 2-х опций любой ценой, которые, как я понимаю, не особенно специфичный для монгоба. У меня сложилось впечатление, что это применимо для большинства исследований NoSQL, которые я исследовал (CoachDB, Cassandra, CouchBase Server и т. Д.) Из-за специфики дизайна базы данных.

Коллекции (или ведра или, тем не менее, они называют это в разных БД) - это не то же самое, что и схемы безопасности в РСУБД, несмотря на то, что они ведут себя как контейнер для документов, которые они бесполезны для применения хорошего разделения арендаторов. Я не мог найти базу данных NoSQL, которая может применять ограничения безопасности на основе коллекций.

Конечно, вы можете использовать защиту на основе ролей mongodb для ограничения доступа на уровне базы данных / сервера. ( http://docs.mongodb.org/manual/core/authorization/ )

Я бы порекомендовал 1-й вариант, когда:

  • Вы имеют достаточно времени и ресурсов, чтобы справиться со сложностью проектирования, реализации и тестирования этого сценария.
  • Если вы не будете иметь существенных различий в структуре и функциональности в базе данных для разных арендаторов.
  • Ваш дизайн приложения позволит арендаторам выполнять только минимальные настройки во время выполнения.
  • Если вы хотите оптимизировать пространство и свести к минимуму использование аппаратных ресурсов.
  • Если вы собираетесь чтобы иметь тысячи арендаторов.
  • Если вы хотите быстро масштабироваться и получать хорошие деньги.
  • Если вы НЕ собираетесь делать резервные копии данных на основе арендаторов (сохраняйте отдельные резервные копии для каждого арендатора ).

Я бы пошел на вариант 3, если:

  • Вы собираетесь сделать это даже в этом сценарии, но это будет огромным. имеют небольшой список арендаторов (несколько сотен).
  • Специфика бизнеса требует, чтобы вы могли поддерживать большие различия в структуре базы данных для разных арендаторов (например, интеграция с сторонними системами, импорт-экспорт данных.
  • Ваш дизайн приложения позволит клиентам (арендаторам) внести существенные изменения в среду выполнения приложений (добавление модулей, настройка полей и т. д.).
  • Если у вас достаточно ресурсы для быстрого развертывания с новыми аппаратными узлами.
  • Если вам необходимо хранить версии / резервные копии данных для каждого арендатора.
  • Существуют законодательные / нормативные ограничения, которые заставляют вас держать разных арендаторов в разных базах данных (даже в центрах обработки данных).
  • Если вы хотите полностью использовать (g16) Существуют большие различия в размерах между арендаторами (у вас много мелких арендаторов и несколько очень крупных арендаторов).
  • / g26]

    Если вы разместите дополнительную информацию о своем приложении, возможно, я смогу дать вам более подробные советы.

524
задан blahdiblah 24 October 2012 в 00:59
поделиться

2 ответа

В случае, если кому-то интересно, как это сделать, вот один способ: (Еще раз спасибо Марку!)

mBox = new TextView(context);
mBox.setText(Html.fromHtml("<b>" + title + "</b>" +  "<br />" + 
            "<small>" + description + "</small>" + "<br />" + 
            "<small>" + DateAdded + "</small>"));

Неофициальный список тегов, поддерживаемых этим методом, см. эту ссылку или этот вопрос: Какие HTML-теги поддерживаются Android TextView?

688
ответ дан 22 November 2019 в 22:24
поделиться

Попробуйте Html.fromHtml () и выделите свой текст полужирным и курсивным шрифтом HTML-тегов, например:

Spanned text = Html.fromHtml("This mixes <b>bold</b> and <i>italic</i> stuff");
textView.setText(text);
211
ответ дан 22 November 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: