J'essaie de produire une application Oracle simple où lorsque vous posez une question à l'application, elle crache une réponse basée sur un nombre aléatoire. J'ai fait quelques recherches et il me semble que la meilleure façon de faire est de créer une ressource pour mes réponses contenant un tableau de cordes, je peux ensuite taper mes différentes réponses dans le tableau.Comment utiliser une entrée de tableau de chaînes basée sur sa position dans le tableau (Android)?
Dans mon code Java dans mon activité principale, je peux générer un nombre aléatoire en cliquant sur un bouton. Ce nombre aléatoire peut alors correspondre au numéro de l'index.
Mon problème vient quand j'essaie d'assembler le nombre aléatoire et l'installation pour accéder au tableau de chaînes ensemble dans le code.
Voici une copie de mon fichier 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>
Voici mon code 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;
}
}
}
Je suis la programmation en Java avec l'IDE Eclipse et comme vous l'avez probablement deviné Je suis nouveau au jeu!
Toute l'aide est très appréciée !!
Wow c'était une réponse rapide! maintenant sur le point de l'essayer et enverra quelques commentaires. – Ben
Je reçois un avertissement variable locale n'est jamais lu sur les réponses du premier morceau de code et aussi sur la réponse dans le deuxième morceau de code. – Ben
Si le deuxième morceau compile, alors il est certainement en train de lire les réponses, et les réponses ne seraient pas inutilisées. Pour rendre la réponse utilisée, vous voudrez probablement l'afficher en quelque sorte, peut-être en cochant setText sur un TextView? –