我正在尝试制作一个简单的oracle应用程序,当你向应用程序询问一个问题时,它会根据一个随机数字吐出一个答案。
我做了一些研究,在我看来,最好的做法是为我的答案创建一个包含字符串数组的资源,然后我可以在数组中输入我的各种答案。
在我的主要活动的Java代码中,我可以在单击按钮时生成随机数。这个随机数可以对应于索引的数量。
当我尝试将随机数和设施分块以在代码中一起访问字符串数组时,我的问题出现了。
这是我的answerStrings.xml文件的副本
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array
name="answers">
<item>Yes</item>
<item>No</item>
<item>Maybe</item>
<item>Quite possibly</item>
</string-array>
</resources>
这是我的java代码:
import java.util.Random;
import android.app.Activity;
import android.content.res.Resources;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
TextView outputText;
MediaPlayer mpGobble;
Vibrator vibr;
String[] answers;
private Random myRandom = new Random();
int randomNumber;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//find the output text view for use within the activity
outputText = (TextView)findViewById(R.id.textView01);
outputText.setOnClickListener(this);
//Declare an array of outputs
Resources res = getResources();
String[] answers = res.getStringArray(R.array.answers);
//--------^ Problem
outputText.setText("Ask your question then click me");
}
@Override
public void onClick(View src) {
switch(src.getId()){
case R.id.textView01:
//creates a random number
int randomNumber = myRandom.nextInt(3);
String answer = answers[randomNumber];
outputText.setText(answer);
break;
}
}
}
我使用eclipse IDE用Java编程,因为你可能已经猜到我是游戏的新手!
非常感谢所有帮助!!
答案 0 :(得分:7)
下面的代码会将您的String资源数组放入名为answers的String []中。
Resources res = getResources();
String[] answers = res.getStringArray(R.array.answers);
然后您可以使用
选择答案String answer = answers[YOUR_RANDOM_WHOLE_NUMBER];
FYI,资源中的字符串数组只能是512个条目。 Some string resource help Some general resource class help