eclipse android setText为随机String

时间:2014-02-23 16:19:17

标签: android arrays string random android-resources

你好我在我的Strings.xml中有2000个问题,每个问题都有3个可能的答案。我想在textview中显示一个随机问题,答案就是。

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

答案 0 :(得分: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,数据库或其他东西,但我相信更好的格式会对你有很大帮助。

就目前而言,您不仅需要直接参考代码中的问题,还需要参考答案。该工具根本不适合您使用它的方式。