使用if语句大于和小于

时间:2014-02-13 16:57:03

标签: android if-statement

所以我所拥有的是2 editText一个用于最小数量,一个用于最大数量,当用户点击该按钮时,应用程序在2个给定数字之间生成一个随机数(我得到它)但是如果用户输入了最大数量在最小数字字段中,应用程序崩溃我想要完成的是,如果用户输入最小数字字段中的最大数字,则将最大数字字段设置为最小数字+ 1并自动重试我尝试下面的代码并且其工作如果用户输入右侧的值,但如果用户在最小数字字段中输入了最大数量,则应用程序崩溃

    Button gen = (Button)findViewById(R.id.button);
    final EditText mini = (EditText)findViewById(R.id.mini);
    final EditText maxi = (EditText)findViewById(R.id.maxi);
    final TextView res = (TextView)findViewById(R.id.result);

    final Random r = new Random();
    final int[] number = {0};

   gen.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View view) {

           int minn = Integer.parseInt(mini.getText().toString());
           int maxx = Integer.parseInt(maxi.getText().toString());

           if (minn>=maxx){
               maxi.setText(minn+1);
               maxx = Integer.parseInt(maxi.getText().toString());
               number[0] = minn + r.nextInt(maxx - minn + 1);
               res.setText(String.valueOf(number[0]));
           }else{
               number[0] = minn + r.nextInt(maxx - minn + 1);

               res.setText(String.valueOf(number[0]));
           } 

       }
   });

}

2 个答案:

答案 0 :(得分:1)

替换以下内容......

maxi.setText(minn+1);

使用...

maxi.setText(String.valueOf(minn+1));

int 值而不是 String 值传递到 setText 方法导致崩溃问题。

答案 1 :(得分:1)

我认为你应该这样做:

if (minn>=maxx){
           maxi.setText(String.valueOf(minn));
           mini.setText(String.valueOf(maxx));
           maxx = Integer.parseInt(maxi.getText().toString());
           minn = Integer.parseInt(minn.getText().toString());
           number[0] = minn + r.nextInt(maxx - minn + 1);
           res.setText(String.valueOf(number[0]));
       }
number[0] = minn + r.nextInt(maxx - minn + 1);    
res.setText(String.valueOf(number[0]));