2014-02-23 30 views
0

你好,我有2000个问题,每个问题在我的Strings.xml中有3个可能的答案。我想要一个随机问题显示在textview中并且是答案。eclipse android setText to random字符串

<string name="Frage1">Was versteht man unter defensivem Fahren?</string> 
<string name="ersteAntwort1">Nicht auf dem eigenen Recht bestehen</string> 
<string name="zweiteAntwort1">Mit Fehlern anderer rechnen</string> 
<string name="dritteAntwort1">Vorsorglich an jeder Kreuzung anhalten</string> 
<string name="Frage2">Was kann zu Auffahrunfällen führen?</string> 
<string name="ersteAntwort2">Unerwartet starkes Bremsen</string> 
<string name="zweiteAntwort2">Unaufmerksamkeit</string> 
<string name="dritteAntwort2">Zu dichtes Auffahren</string> 
<string name="Frage3">Sie fahren innerorts hinter einem Fahrzeug mit ortsfremdem Kennzeichen. Was könnte geschehen?</string> 
<string name="ersteAntwort3">- bremst unerwartet</string> 
<string name="zweiteAntwort3">- betätigt den Blinker vor dem Abbiegen zu spät</string> 
<string name="dritteAntwort3">- hält unerwartet an, um nach dem Weg zu fragen</string> 

弦的名字都是一样的,唯一的问题数量的变化,所以我想一个随机数添加到字符串名称

public void neueFrage (View view) { 

    Button buttonTipp = (Button)findViewById(R.id.button1); 
    final TextView tw = (TextView)findViewById(R.id.textView1); 
    final CheckBox Chk1 = (CheckBox)findViewById(R.id.checkBox1); 
    final CheckBox Chk2 = (CheckBox)findViewById(R.id.checkBox2); 
    final CheckBox Chk3 = (CheckBox)findViewById(R.id.checkBox3); 
    buttonTipp.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      int random = (int) (Math.random() *3); 
      String zahl = String.valueOf(random); 
      String question = "Frage"+zahl; 
      String firstAnswer ="ersteAntwort"+zahl; 
      String secondAnswer = "zweiteAntwort"+zahl; 
      String thirdAnswer = "dritteAntwort"+zahl; 
      tw.setText(R.string.question); 
      Chk1.setText(R.string.firstAnswer); 
      Chk1.setText(R.string.secondAnswer); 
      Chk1.setText(R.string.thirdAnswer); 
        }});  
} 
+1

而不是使用strings.xml,你最好使用db ...所以你的答案会与你的问题有关系。只需随机选择一个问题及其相关答案。好简单。 –

+0

我不知道如何使用数据库,所以它会更快,如果我得到这个代码工作。这应该是这样更容易,但我不知道为什么错误appaer问题,firstanswer,secondanswer,thirdanser不能解决或不是字段 –

+0

您的方法将需要创建一个巨大的数组,每个问题一个。扩展它需要代码和xml值。学习数据库可能更容易,这是正确的解决方案。 – PearsonArtPhoto

回答

1

首先的第一部分,如果可以的话,以适当的格式写入数据。 XML将是一个不错的选择,您可以创建自己的XML格式并阅读它。一个XML格式示例可能如下,Android也包含一些优秀的解析器。

<questions_list> 
    <question name="Question 1?"> 
     <answer name="Answer 1"/> 
     <answer name="Answer 2"> 
      <correct/> 
     </answer> 
     <answer name="Answer 3"/> 
    </question> 
</question_list> 

如果不工作,也许一个字符串数组可以工作,像这样:

<string-array name="question1"> 
    <item>Question 1</item> 
    <item>Answer 1</item> 
    ... 
</string-array> 

第三种选择是把数据放到一个SQLite数据库,可能有5列,问题,3个答案和正确的答案。关于如何做到这一点,有很多,最简单的方法是使用像Python这样的语言来填充数据库,然后使用类似SQLiteAssetHelper的东西将数据库放入程序中。

我认为重新格式化将为您节省大量工作。 XML,一个数据库或其他的东西,但是我相信一个更好的格式会对你有很大的帮助。

就目前而言,您不得不直接在代码中引用问题,也需要引用答案。该工具并不意味着以您使用它的方式使用。

+0

这是一个很好的选择使用数据库,因为你可以有索引元素。 +1 –