1

私はこれでほとんど初心者なので、アプリがクラッシュし続ける理由を知るためにいくつかの助けを借りることができますか? 私は多くの方法を試しましたが、これが今までで最高の方法です。

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final TextView lastAnswer = (TextView) findViewById(R.id.textView5);
    final TextView answerLabel = (TextView) findViewById(R.id.textView1);
    final TextView answerLabel1 = (TextView) findViewById(R.id.textView2);
    final TextView answerLabel2 = (TextView) findViewById(R.id.textView3);
    final EditText enteredNumber = (EditText) findViewById(R.id.editText1);
    Button getAnswerButton = (Button) findViewById(R.id.button1);

    getAnswerButton.setOnClickListener(new View.OnClickListener() { 

            @Override   
        public void onClick(View arg0) {
                 Random randomGenerator = new Random();
                  //rand gene
                     int randomNumber2 = randomGenerator.nextInt(99);
                      int randomNumber = randomGenerator.nextInt(99);

            String number = "";
            String number2 = "";
            String jtext = " Times ";
            number2= Integer.toString(randomNumber2);
            number= Integer.toString(randomNumber);
            answerLabel.setText(jtext);
            answerLabel1.setText(number2);
            answerLabel2.setText(number);

            String content = enteredNumber.getText().toString();

条件付きにコメントすると、アプリは正常に動作しますが、それだけでは問題は条件付きではないと思いますが、見つけられないようです。Eclipseでこれまでにエラーはありません。

            if (content != null){
                int anInt=Integer.parseInt(content);
                int result= randomNumber2 *randomNumber;

                    if(anInt == result ){

                      Context context =getApplicationContext();
                            CharSequence text = "That's correct!!";
                            int duration = Toast.LENGTH_SHORT;
                            Toast toast = Toast.makeText(context, text, duration);
                            toast.show();

                    } else{ 

                    Context context = getApplicationContext();
                    CharSequence text = "That's not correct";
                    int duration = Toast.LENGTH_SHORT;
                    Toast toast = Toast.makeText(context, text, duration);
                    toast.show(); 
                    }
                    lastAnswer.setText(content);
            }

            }
        });}

だから、私がここでやろうとしているのは(noobコードに注意してください)、2つの乱数を生成し、それらを表示してから、ユーザーに結果を入力させ、それを比較し、正しいかどうかを通知してから再生成することです..私はに取り組んできましたこれを何日も

このコードに従う新しい方法であっても、どんな助けでも大歓迎です。ありがとう。

4

3 に答える 3

1

おそらく、解析を try/catch で囲む必要があります。解析されて数値に戻されるユーザー入力は、常に機能するとは限りません (特に EditTexts の場合)。変化する

int anInt=Integer.parseInt(content);

そうです

  int anInt= -1;
  try{
   anInt = Integer.parseInt(content);
  }
  catch (NumberFormatException e)
  {
    //Show toast or dialog
  }

また、生活を楽にするために、 EditTextが数字のみを受け入れるようにする必要があります。

于 2013-01-18T15:53:53.260 に答える
0

うーん....アプリケーションコンテキストを使用してトーストを表示するのはなぜですか? 同じ問題に関する最近の質問を見たのを思い出します。MainActivity.this代わりにアクティビティ コンテキスト ( ) を使用してみてください。

于 2013-01-18T15:54:00.723 に答える
-1

コメントを追加した後、プロジェクトをきれいにして、もう一度実行してください

これが解決策でない場合は、回答を編集します

于 2013-01-18T15:52:27.357 に答える