我在加载以前创建的布局时遇到问题。我想加载它并更改内部按钮上的文本,然后将其显示给用户。这将是测验问题,我必须在一次活动中多次展示。我不想为我的布局创建新类。
我必须使用什么?我读了一些关于Inflate类的内容,但我认为它只用于创建新类。我尝试了setContentView()
方法,但是当开始执行此加载的方法时app停止:
LinearLayout layout = (LinearLayout) findViewById(R.id.CapitalQuestionLayout);
setContentView((View) layout);
有人可以提供一些提示吗?
答案 0 :(得分:0)
要创建“测验”应用,您的基本要求是:
TextView
为问题,4 Buttons
为选项。您可以创建自定义类 - 将为问题及其相关选项(如字符串)保留文本的问题。
现在,只要您想为按钮显示不同文本的新问题,请执行以下操作:
Right-Answer-Activity
(具有next-question-Button
)。next-question-button
时,您可以显示Question-Activity
并使用随机选择的问题对象的属性(即问题的文本和选项的文字)填充布局视图。希望这有帮助。
答案 1 :(得分:0)
从R类调用时,尝试使用布局字段而不是id字段,如下所示:
LinearLayout layout = (LinearLayout) findViewById(R.layout.CapitalQuestionLayout);
setContentView((View) layout);
答案 2 :(得分:0)
这在Android应用中很常见。你的字段/按钮有id吗?对于父活动,您大部分都是
Button someButton = (Button) findViewById(R.id.the_id_to_the_button_you_want_to_change);
这允许您执行
之类的操作someButton.setText("What is the ultimate answer to life, the universe, and everything?");
如果你想做其他事情,比如设置颜色,请查看Andorid文档。如果您有某种类型的视图组(RelativeLayout / LinearLayout / etc),您可以指定特定的视图组
Button someButton = (Button)viewGroup.findViewById(R.id.awesomely_named_button_identifier);
以上someOtherButton更常用于膨胀的viewGroups