我是Android和Stack Overflow的新手。我已经开始开发和Android应用程序,我想知道两件事:
1)是否可以参数化TextView?假设我想要呈现一条文本消息,其中包含:“用户年龄为38岁”。让我们假设用户年龄是算法的结果。使用一些典型的i18n框架,我会在我的i18n文件中写一些类似“用户年龄为{0}”的文件。然后在运行时我会相应地填充参数。我无法弄清楚如何在Android中执行此操作或类似方法。
2)假设我有一个包含许多字段的复杂对象。例如:具有id,姓名,年龄,国家,喜爱的视频游戏等的PersonModel。如果我想在我的一个活动中将所有这些信息渲染到单个布局中,我找到的唯一方法是通过id获取所有需要的TextView,然后通过代码逐个填充它们。 我想知道是否有一些映射/绑定机制,我可以执行类似:render(myPerson,myView),并通过反射自动执行每个模型属性映射到每个TextViews。 如果有人曾经使用SpringMVC,我正在寻找类似于他们的机制来将域对象/模型映射到视图(例如spring:forms)。
非常感谢您提供的帮助。希望这对其他人有用=) 再见!
答案 0 :(得分:2)
回答#1:你想要String.format()。它会让你做类似的事情:
int age = 38;
String ageMessage = "The user age is %d";
myTextView.setText(String.format(ageMessage, age));
您最常使用的两个是数字%d
和字符串%s
。如果您知道它,它会使用printf格式,如果您没有Formatter文档中的快速教程。
对于#2,我认为你正在以最好的方式做到这一点(抓住视图钩子并手动填充它们)。如果你遇到别的什么,我很乐意看到它。