加载XML布局

时间:2012-10-25 18:18:47

标签: android xml layout loading

我在加载以前创建的布局时遇到问题。我想加载它并更改内部按钮上的文本,然后将其显示给用户。这将是测验问题,我必须在一次活动中多次展示。我不想为我的布局创建新类。

我必须使用什么?我读了一些关于Inflate类的内容,但我认为它只用于创建新类。我尝试了setContentView()方法,但是当开始执行此加载的方法时app停止:

LinearLayout layout = (LinearLayout) findViewById(R.id.CapitalQuestionLayout);
setContentView((View) layout);

有人可以提供一些提示吗?

3 个答案:

答案 0 :(得分:0)

要创建“测验”应用,您的基本要求是:

  1. 一个布局,其中TextView为问题,4 Buttons为选项。
  2. 一系列问题;很明显: - )。
  3. 您可以创建自定义类 - 将为问题及其相关选项(如字符串)保留文本的问题。

    现在,只要您想为按钮显示不同文本的新问题,请执行以下操作:

    1. 如果用户点击正确答案,则向用户显示Right-Answer-Activity(具有next-question-Button)。
    2. 当用户点击next-question-button时,您可以显示Question-Activity并使用随机选择的问题对象的属性(即问题的文本和选项的文字)填充布局视图。
    3. 希望这有帮助。

答案 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