Android TextViews. Возможна ли параметризация? Возможна ли привязка к модели? - PullRequest
3 голосов
/ 12 февраля 2010

Я новичок в Android и переполнении стека. Я начал разрабатывать приложение для Android, и мне интересно две вещи:

1) Можно ли параметризовать TextView? Допустим, я хочу сделать текстовое сообщение, в котором говорится что-то вроде: «Возраст пользователя 38 лет». Предположим, что возраст пользователя является результатом алгоритма. Используя некоторую типичную среду i18n, я бы написал в своем файле i18n что-то вроде «Возраст пользователя - {0}». Затем во время выполнения я бы соответственно заполнил параметры. Я не смог выяснить, как сделать этот или подобный подход в Android.

2) Предположим, у меня есть сложный объект со многими полями. Например: PersonModel, который имеет идентификатор, имя, возраст, страну, любимую видеоигру, что угодно. Если я хочу отобразить всю эту информацию в одном макете в одном из моих занятий, единственный способ, который я нашел, - это получить все необходимые TextViews по id, а затем заполнить их один за другим через код. Мне было интересно, есть ли какой-нибудь механизм сопоставления / привязки, в котором я могу выполнить что-то вроде: render (myPerson, myView) и что автоматически через отражение каждое из свойств модели отображается в каждом из TextView. Если кто-то когда-либо работал с SpringMVC, я ищу что-то похожее на его механизм для отображения доменных объектов / моделей в представления (например, spring: forms).

Большое спасибо заранее за вашу помощь. Надеюсь, это будет полезно для кого-то еще =) До свидания!

1 Ответ

2 голосов
/ 12 февраля 2010

В ответе на вопрос № 1: Вы хотите String.format () . Это позволит вам сделать что-то вроде:

int age = 38;
String ageMessage = "The user age is %d";
myTextView.setText(String.format(ageMessage, age));

Наиболее часто вы будете использовать %d для чисел и %s для строк. Он использует формат printf, если вы его знаете, если нет, в документации Formatter есть краткое руководство.

Для # 2, я думаю, вы делаете это наилучшим образом (возьмите хуки вида и заполните их вручную). Если вы столкнетесь с чем-нибудь еще, я бы с удовольствием это увидел.

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