首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android编程入门-构建一个小测验

Android编程入门-构建一个小测验
EN

Stack Overflow用户
提问于 2010-10-06 02:36:09
回答 1查看 1.8K关注 0票数 0

好吧,所以我正在写我的第一个Android应用程序,基本上被卡住了。这个应用程序是一个简短的4个问题的测验,每个问题有两个选择。这将创建16个可能的结果,我已经为其创建了描述。我希望应用程序在回答第四个问题后,显示与用户对每个问题的回答相对应的描述。

现在,我将值存储在一个字符串中,该字符串应该在每个问题之后的前一个字符串答案的基础上构建。所以第一个答案是t1,第二个答案是t2,依此类推。下面是第二个问题的代码:

代码语言:javascript
复制
public class Question2 extends Question1 implements OnClickListener
{
 private Button b1;
 private Button b2;
 public String t2;
 public TextView text2;

 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.question2);
 b1=(Button)findViewById(R.id.gamma);
 b2=(Button)findViewById(R.id.delta);
 b1.setOnClickListener(this);
 b2.setOnClickListener(this);
 text2 = (TextView)findViewById(R.id.TextView02);
 }


 public void onClick(View v) {
  Intent a = new Intent(this, Question3.class);
 if(v == b1)
 { 
  t2= t1+"gamma";
  text2.setText(t2);
 startActivity(a);
 }
  if(v == b2)
 {
 t2= t1+"delta";
 text2.setText(t2);
 startActivity(a);
 }

}
}

我的问题是,字符串不会包含我在上一个问题中分配给它们的值。我有一个文本视图,它简要地显示问题的答案字符串(对于Question2为t2)返回的值,并根据用户的回答显示nullalpha或nullbeta。

如何将T1以前赋值的值保留到Question2中,以便向其添加内容?例如,如果来自Question1的t1 = "alpha“,并且用户在Question2中选择了按钮b1,我如何使t2实际上等于"alphagamma”而不是"nullgamma"?对于字符串,这是可能的吗?

任何答案和建议都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2010-10-06 02:55:24

你需要重新思考你的整个方法,并在面向对象的原则上有一个更好的基础。Question2扩展Question1没有任何意义,它们(大概)彼此没有任何关系。

作为一个开始的数据模型,拥有一个问题类可能是有意义的,如下所示:

代码语言:javascript
复制
public class Question {
   private String questionText;
   private List<String> options;
   private String currentAnswer;

   public Question(String questionText, List<String> options) {
      this.questionText = questionText;
      this.options = options;
   }

   public String getQuestionText() {
      return questionText;
   }

   public String getCurrentAnswer() {
      return currentAnswer;
   }

   public void setCurrentAnswer(String answer) {
      this.currentAnswer = answer;
   }
}

您还可以考虑将答案分离到不同的对象中。

然后,您可以创建一个问题列表,这4个问题中的每个问题都有一个object对象。

不是每个问题都有一个活动,您可以有一个AnswerQuestionActivity,它接受一个问题(通过Intent extra),显示问题,并返回extra对象和填充的答案(再次通过Intent extra)。

当您得到结果时,您可以使用返回的答案更新问题列表,然后根据List<Question>中的当前值重新计算显示字符串。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3866653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档