1

これが私のコードです。何が間違っているのかわかりません。しかし、それは機能していません!理想的には、すべてのテキストビューが空の場合は、「詳細を入力してください」または「保存」で乾杯する必要がありますが、常に「保存」で乾杯する方法もあります。

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

EditText et1;
EditText et2;
EditText et3;
EditText et4;
EditText et5;
Button b;

FileOutputStream fos1;
FileOutputStream fos2;
FileOutputStream fos3;
FileOutputStream fos4;


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

    et1=(EditText) findViewById(R.id.editText1);
    et2=(EditText) findViewById(R.id.editText2);
    et3=(EditText) findViewById(R.id.editText3);
    et4=(EditText) findViewById(R.id.editText4);
    et5=(EditText) findViewById(R.id.editText5);

    b=(Button) findViewById(R.id.button1);


    b.setOnClickListener(this); 
}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    String password=et1.getText().toString();
    String confirmPassword=et2.getText().toString();
    String secQues=et3.getText().toString();
    String secAns=et4.getText().toString();
    String hint=et5.getText().toString();


    if(password!=null && confirmPassword!=null && secQues!=null && secAns!=null && hint!=null)
    {
        Toast.makeText(MainActivity.this, "saved", Toast.LENGTH_SHORT).show();
    }
    else
    {
        Toast.makeText(MainActivity.this, "Please fill all the details.", Toast.LENGTH_SHORT).show();
    }
}

}
4

1 に答える 1

1

null文字列はEditTextsによって生成されるため、常にそうではありません。ただし、取得する文字列は長さ0の空の文字列("")である可能性があります。これは、代わりに文字列の長さを比較する必要があることを意味します。TextUtilsはここではるかにうまく機能します

if(!TextUtils.isEmpty(password) && !TextUtils.isEmpty(confirmPassword)  && !TextUtils.isEmpty(secQues)   && !TextUtils.isEmpty(secAns)  && !TextUtils.isEmpty(hint)){
  Toast.makeText(MainActivity.this, "saved", Toast.LENGTH_SHORT).show();
}

また、たくさんあるEditTextsので、EditTextの配列を作成し、ループして長さをチェックするのが、より良いチェック方法です。空のものが見つかった場合は、ブールフラグをfalseに設定して、ループを終了します。

boolean noneEmpty = true;

for (int x =0; x < editTextArray.length;x++)
{
  if (TextUtils.isEmpty(editTextArray[x].getText()))
  {
    noneEmpty = false;
    break;
  }
}

if(noneEmpty){
  Toast.makeText(MainActivity.this, "saved", Toast.LENGTH_SHORT).show();
}
else{
  Toast.makeText(MainActivity.this, "Please fill all the details.", Toast.LENGTH_SHORT).show();
}  
于 2013-03-14T18:37:40.073 に答える