1

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

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

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

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

4

3 回答 3

0

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

  1. 一个布局,其中有一个TextView问题和 4 个Buttons选项。
  2. 一组问题;很明显 :-)。

您可以创建一个自定义类 - 将保存问题的文本及其相关选项(作为字符串)的问题。

现在,每当您想为按钮显示具有不同文本的新问题时,只需执行以下操作:

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

希望这可以帮助。

于 2012-10-25T18:34:27.363 回答
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 / 等),您可以指定特定的

Button someButton = (Button)viewGroup.findViewById(R.id.awesomely_named_button_identifier);

上面的 someOtherButton 更常用于膨胀的 viewGroups

于 2012-10-25T19:41:58.917 回答
0

当您从 R 类调用时,尝试使用布局字段而不是 id 字段,如下所示:

LinearLayout layout = (LinearLayout) findViewById(R.layout.CapitalQuestionLayout);
setContentView((View) layout);
于 2012-10-25T19:29:09.807 回答