2011-02-01 108 views
0

我有一个简单的问答游戏,它运行良好,但我遇到的一个问题是答案和选项的问题显示在按钮上,但答案按钮每次出现在同一个地方。随机放置按钮

有没有办法通过XML接口随机定位,还是更好地在编码端处理?

以下是我用于XML的代码以及用于将数据值从SQLite绑定到按钮的代码。任何意见将不胜感激。

private void showQuestions(Cursor cursor) { 
// Collect String Values from Query 
StringBuilder questiontxt = new StringBuilder(""); 
StringBuilder answertxt1 = new StringBuilder(""); 
StringBuilder answertxt2 = new StringBuilder(""); 
StringBuilder answertxt3 = new StringBuilder(""); 
StringBuilder answertxt4 = new StringBuilder(""); 

while (cursor.moveToNext()) { 
String question = cursor.getString(2); 
String answer = cursor.getString(3); 
String option1 = cursor.getString(4); 
String option2 = cursor.getString(5); 
String option3 = cursor.getString(6); 
questiontxt.append(question).append(""); 
answertxt1.append(answer).append(""); 
answertxt2.append(option1).append(""); 
answertxt3.append(option2).append(""); 
answertxt4.append(option3).append(""); 
} 
// Display answer button 
TextView answer = (TextView) findViewById(R.id.option1_button); 
answer.setText(answertxt1); 
//Display question 
TextView text = (TextView) findViewById(R.id.text); 
text.setText(questiontxt); 
TextView optionbutton1 = (TextView) findViewById(R.id.option2_button); 
optionbutton1.setText(answertxt2); 
TextView optionbutton2 = (TextView) findViewById(R.id.option3_button); 
optionbutton2.setText(answertxt3); 
TextView optionbutton3 = (TextView) findViewById(R.id.option4_button); 
optionbutton3.setText(answertxt4); 
} 

和XML

<Button 
android:id="@+id/option1_button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_above="@+id/option3_button"/> 

<Button 
android:id="@+id/option2_button" 
android:text="@string/option2_label" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_alignParentRight="true" 
android:layout_above="@+id/option4_button"/> 

<Button 
android:id="@+id/option3_button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/option3_label" 
android:layout_alignParentLeft="true" 
android:layout_alignParentBottom="true"/> 

<Button 
android:id="@+id/option4_button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/option4_label" 
android:layout_alignParentRight="true" 
android:layout_alignParentBottom="true"/> 

回答

1

您好我会建议处理上的编码side..I怀疑你是我能够chieve这对XML侧!

int randomInt = Math.random() * 1000; 

    TextView answer = (TextView) findViewById(R.id.option1_button); 
    answer.setText(answertxt1); 
    //Display question 
    TextView text = (TextView) findViewById(R.id.text); 
    text.setText(questiontxt); 
if(randomInt%3==0){ 
    TextView optionbutton1 = (TextView) findViewById(R.id.option2_button); 
    optionbutton1.setText(answertxt2); 
    TextView optionbutton2 = (TextView) findViewById(R.id.option3_button); 
    optionbutton2.setText(answertxt3); 
    TextView optionbutton3 = (TextView) findViewById(R.id.option4_button); 
    optionbutton3.setText(answertxt4);} 
else {TextView optionbutton1 = (TextView) findViewById(R.id.option3_button); 
    optionbutton1.setText(answertxt3); 
    TextView optionbutton2 = (TextView) findViewById(R.id.option4_button); 
    optionbutton2.setText(answertxt4); 
    TextView optionbutton3 = (TextView) findViewById(R.id.option2_button); 
    optionbutton3.setText(answertxt2);} 

你可以尝试各种随机方法在不同的方式来显示!我希望 这有助于

+0

感谢加里马在Java中处理此问题的最佳方法的任何想法? – Cam 2011-02-01 04:59:36