Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用户输入int-won';不能为空_Android_Validation_Android Studio_Input - Fatal编程技术网

Android 用户输入int-won';不能为空

Android 用户输入int-won';不能为空,android,validation,android-studio,input,Android,Validation,Android Studio,Input,我制作了一个代码,用户将值放在某个范围之间,我的代码为它们生成随机数。随机化工作正常,但当字段为空时,我的应用程序崩溃,我该如何修复它 randNum.java Button generateNum = findViewById(R.id.generate_number); generateNum.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {

我制作了一个代码,用户将值放在某个范围之间,我的代码为它们生成随机数。随机化工作正常,但当字段为空时,我的应用程序崩溃,我该如何修复它

randNum.java

Button generateNum = findViewById(R.id.generate_number);

generateNum.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        EditText et = findViewById(R.id.fromNum);
        String sTextFromET = et.getText().toString();
        int fNum = Integer.valueOf(sTextFromET);


        EditText et1 = findViewById(R.id.toNum);
        String sTextFromET1 = et1.getText().toString();
        int sNum = Integer.valueOf(sTextFromET1);

        TextView ans = findViewById(R.id.ans);

        //                if(sNum == null || fNum == null){
            //
            //                    ans.setText(getString(R.string.enterNumError));
            //
            //                }
        //                else
        if(sNum < fNum){

            ans.setText(getString(R.string.max_min_error));

        }else {

            final int random = new Random().nextInt((sNum - fNum) + 1) + fNum;
            String ras = Integer.toString(random);
            ans.setText(ras);

        }

    }
});
按钮generateNum=findviewbyd(R.id.generate\u编号);
GenerateEnum.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
EditText et=findViewById(R.id.fromNum);
字符串sTextFromET=et.getText().toString();
int fNum=整数.valueOf(sTextFromET);
EditText et1=findViewById(R.id.toNum);
字符串sTextFromET1=et1.getText().toString();
int sNum=整数.valueOf(sTextFromET1);
TextView ans=findViewById(R.id.ans);
//如果(sNum==null | | fNum==null){
//
//ans.setText(getString(R.string.enternumeror));
//
//                }
//否则
如果(sNum

我尝试使用
null
,但它不起作用。

您需要在单击按钮时首先进行验证。(用于检查用户是否未在任何编辑文本中输入任何内容或仅输入空格)

希望这能帮助您理解表单对空输入字段的验证

注:如果您还没有在xml文件中添加inputType属性,我建议您为EditText添加该属性,如:

android:inputType="number"

因此,如果用户输入任何字母或符号,您可以避免在
Integer.parseInt
处出现异常。

您需要处理Integer.valueOf()函数引发的NumberFormatException

try {
      EditText et = findViewById(R.id.fromNum);
      String sTextFromET = et.getText().toString();
      int fNum = Integer.valueOf(sTextFromET);


      EditText et1 = findViewById(R.id.toNum);
      String sTextFromET1 = et1.getText().toString();
      int sNum = Integer.valueOf(sTextFromET1);

      TextView ans = findViewById(R.id.ans);

      if(sNum < fNum){
          ans.setText(getString(R.string.max_min_error));
      }else {
          final int random = new Random().nextInt((sNum - fNum) + 1) + fNum;
          String ras = Integer.toString(random);
          ans.setText(ras);
      }
}catch(NumberFormatException e){
    Toast.makeText(this, "Invalid Input", Toast.LENGTH_SHORT).show();
}
试试看{
EditText et=findViewById(R.id.fromNum);
字符串sTextFromET=et.getText().toString();
int fNum=整数.valueOf(sTextFromET);
EditText et1=findViewById(R.id.toNum);
字符串sTextFromET1=et1.getText().toString();
int sNum=整数.valueOf(sTextFromET1);
TextView ans=findViewById(R.id.ans);
如果(sNum
我已经添加了android:inputType=“number”,我现在按照您的建议更改了代码。lenghth()无法解决发生的错误。请使用新代码更新您的问题,以便我可以查看一下。IMO
TextUtils.isEmpty(strNum1)
方法处理此类情况要好得多。是的,使用android:inputType=“number”
是一个好主意,因为它可以防止用户在文本输入中输入非数值。
try {
      EditText et = findViewById(R.id.fromNum);
      String sTextFromET = et.getText().toString();
      int fNum = Integer.valueOf(sTextFromET);


      EditText et1 = findViewById(R.id.toNum);
      String sTextFromET1 = et1.getText().toString();
      int sNum = Integer.valueOf(sTextFromET1);

      TextView ans = findViewById(R.id.ans);

      if(sNum < fNum){
          ans.setText(getString(R.string.max_min_error));
      }else {
          final int random = new Random().nextInt((sNum - fNum) + 1) + fNum;
          String ras = Integer.toString(random);
          ans.setText(ras);
      }
}catch(NumberFormatException e){
    Toast.makeText(this, "Invalid Input", Toast.LENGTH_SHORT).show();
}