我正在为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;
}
}
}
请您参考如下方法:
从您的日志中:
ComponentInfo{com.jeepingviini.randomnumbergenerator/com.jeepingviini.randomnumbergenerator.MainActivity}: java.lang.ClassCastException: android.support.v7.widget.AppCompatTextView cannot be cast to android.widget.EditText
您正在尝试将
AppCompatTextView
转换为
EditText
。
检查
RndNbGenNbs1
,
RndNbGenNbs2
和
RndNbGenResult
,在xml文件中将其中一个(或全部)声明为
AppCompatTextView
,同时尝试在Java代码中将其转换为
EditText
。
您需要选择是
EditText
还是
AppCompatTextView
。