2015-10-11 2 views
0

Я создаю генератор случайных чисел для Android и я новичок в Java. С некоторой помощью мне удалось сделать что-то, что должно работать, но когда я пытаюсь запустить его в эмуляторе, приложение выйдет из строя. Вот код, который я использовал:Сбой случайных чисел

public class MainActivity extends AppCompatActivity implements OnClickListener { 

EditText RndNbGenNbs1, RndNbGenNbs2; 
TextView RndNbGenResult; 

int MinNumber; 
int MaxNumber; 
String Result; 
Random Rnd = new Random(); 
String Number1; 
String Number2; 
Button btn; 

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

    RndNbGenNbs1 = (EditText) findViewById(R.id.RndNbGenNbs1); 
    RndNbGenNbs2 = (EditText) findViewById(R.id.RndNbGenNbs2); 
    RndNbGenResult = (TextView) findViewById(R.id.RndNbGenResult); 
    Number1 = RndNbGenNbs1.getText().toString(); 
    Number2 = RndNbGenNbs2.getText().toString(); 
    btn = (Button) findViewById(R.id.RndNbGenBtn1); 

} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.RndNbGenBtn1: 

      MinNumber = Integer.parseInt(Number1); 
      MaxNumber = Integer.parseInt(Number2); 

      Rnd.nextInt(MaxNumber - MinNumber); 

      Result = Rnd.toString(); 

      RndNbGenResult.setText(Result); 
      break; 


    } 

} 

}

+0

'String Number1 = RndNbGenNbs1.getText(). ToString();' и 'String Number2 = RndNbGenNbs2.getText(). ToString();' находятся в блоке инициализации вашего кода. Поскольку 'RndNbGenNbs1' и' RndNbGenNbs2' не установлены до вызова 'onCreate()', он должен вызывать «NullPointerException» и сбой. Попробуйте отладки вместо простого запуска вашего проекта. – GiantTree

+0

Если это поможет здесь LogCat Log http://pastebin.com/tUuBH6qW – jeepingviini

ответ

0

из журнала:

ComponentInfo {com.jeepingviini.randomnumbergenerator/com.jeepingviini.randomnumbergenerator.MainActivity}: java.lang .ClassCastException: android.support.v7.widget.AppCompatTextView не может быть приведен к android.widget.EditText

Вы пытаетесь наложить AppCompatTextView на номер EditText.

Проверить RndNbGenNbs1, RndNbGenNbs2 и RndNbGenResult, один (или все) из них объявлен как AppCompatTextView в XML-файле, в то время как вы пытаешься бросить его как EditText в коде Java.

Вам нужно выбрать, хотите ли вы EditText или AppCompatTextView.

+0

Я проверю его сейчас. – jeepingviini

+0

Спасибо, я не сбой, пока не нажму кнопку. – jeepingviini

+0

Вы можете принять ответ, если он решит вашу проблему. И откройте другой вопрос, если у вас есть другая проблема. – Rami

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