2015-09-03 6 views
1

Я написал этот код, который должен показывать другой текст в каждом целом (0-4). Операторы If 0-3 являются точными, но когда целое число превращается в 4, TextView не изменяется на «Пример 5». Если вы нажмете кнопку, ничего не произойдет, и у меня нет идеи, почему! Нужна помощь;)Если инструкция не работает? Текст не изменяется

package com.eastereggdevelopment.entwederoder; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.TextView; 

import java.util.Random; 


public class Start extends AppCompatActivity { 

private int question; 
private TextView Question; 
private TextView quNumber; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.start); 

} 

public void back(View view) 
{ 
    if(question > 1) 
    { 
     question--; 
     setQuestion(); 
    } 

} 

public void next(View view) 
{ 
    if(question < 5) 
    { 
     question++; 
     setQuestion(); 
    } 

} 

public void rumble(View view) 
{ 
    Random rand = new Random(); 
    question = (rand.nextInt(4)); 
    setQuestion(); 
} 

public void setQuestion() 
{ 
    TextView Question = (TextView) findViewById(R.id.question); 
    if(question == 0) 
    { 
     Question.setText("Example 1"); 
    } 
    if(question == 1) 
    { 
     Question.setText("Example 2"); 
    } 
    if(question == 2) 
    { 
     Question.setText("Example 3"); 
    } 
    if(question == 3) 
    { 
     Question.setText("Example 4"); 
    } 
    if(question == 4) 
    { 
     Question.setText("Example 5"); 
    } 
} 
} 

Спасибо :)

+0

Вы пытались шагать через него в отладчике? – Buddy

+0

Да, но я новичок и не понимаю каждую строку в отладчике –

ответ

2

Эта линия - question = (rand.nextInt(4));, измените значение на 5

nextInt (Int N) метод используется для получения псевдослучайной, равномерно распределенное значение int между 0 (включительно) и указанное значение (исключение), взятое из этой последовательности генераторов случайных чисел.

Java Documentation

+0

Почему 5? Эта строка должна изменить значение на 0,1,2,3,4 пять чисел для пяти операторов. –

+0

Если вы внимательно прочитали, вы заметите, что добавленный фрагмент документации прилагается. 'question = 4' никогда не будет истинным, потому что он никогда не будет создан с этой строкой кода. '.random.nextInt (n)' генерирует число от 0 (включительно) до 'n-1' (n равно 4 прямо сейчас). Так что, если вы хотите генерировать числа от 0 до 4, тогда вы должны написать 5 вместо 4 (5-1 = 4) –

+0

. Ах, спасибо, это работает! –

Смежные вопросы