在继续语句之前检查for循环是否完成

时间:2012-08-14 02:15:06

标签: java android

这里有一些问题。我创建了一个EditText数组,它工作正常。现在,当其中一个EditText为空时,我收到一个错误。 这是我的代码:

int[] textIDs = new int[] {R.id.etFirstName, R.id.etLastName, R.id.etEmail, R.id.etAddress, R.id.etCity, R.id.etRegion, R.id.etMobile, R.id.etLandLine, R.id.etYear, R.id.etMonth, R.id.etDay };
        for(int j=0; j<textIDs.length; j++) {
            EditText editText = (EditText) findViewById(textIDs[j]);
            if(editText.getText().toString().trim().equals(""))
            {
                 // editText is empty
                Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT).show();
                break;
            } 
            else 
            {
                 // editText is not empty
                Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show();
            }

使用此代码的主要问题是循环继续执行此代码的功能        Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show(); 在每个循环中继续显示。在循环完成后,这个Toast有没有显示的方式?

3 个答案:

答案 0 :(得分:1)

将它放在for循环中..

boolean isNotEmpty = false;

    for(int j=0; j<textIDs.length; j++) {
                EditText editText = (EditText) findViewById(textIDs[j]);
                if(editText.getText().toString().trim().equals(""))
                {
                     // editText is empty
                    Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT).show();

                    isNotEmpty = false;   // Marking as Empty
                    break;
                } 
                else 
                {
                     // editText is not empty

                    isNotEmpty = true     // Marking as Non-Empty

                }
             }
    if (isNotEmpty){
    Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show();
    }

答案 1 :(得分:0)

    boolean doShowToast = false;
    int[] textIDs = new int[] {R.id.etFirstName, R.id.etLastName, R.id.etEmail, R.id.etAddress, R.id.etCity, R.id.etRegion, R.id.etMobile, R.id.etLandLine, R.id.etYear, R.id.etMonth, R.id.etDay };
    for(int j=0; j<textIDs.length; j++) {
        EditText editText = (EditText) findViewById(textIDs[j]);
        if(editText.getText().toString().trim().equals(""))
        {// editText is empty
            Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT).show();
            break;
        } 
        else 
        {
             // editText is not empty
            doShowToast = true;
        }
    }
    if(doShowToast){
         Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show();
    }

通过使用布尔值,你只会在循环退出后显示一次else语句的toast,并且只有在调用else语句时才会显示,所以只有“editText不为空”

答案 2 :(得分:0)

int[] textIDs = new int[] {R.id.etFirstName, R.id.etLastName, R.id.etEmail, R.id.etAddress, R.id.etCity, R.id.etRegion, R.id.etMobile, R.id.etLandLine, R.id.etYear, R.id.etMonth, R.id.etDay };
Toast t; 

    for(int j=0; j<textIDs.length; j++) {
        EditText editText = (EditText) findViewById(textIDs[j]);
        if(editText.getText().toString().trim().equals(""))
        {// editText is empty
            t = Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT);
            break;
        } 
        else 
        {
             // editText is not empty
            static Toast toast = Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT);
            t = toast;
        }
    }
    t.show();