2014-02-23 31 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 –