ダイアログでフォームを作成します。
フォームの検証を使用して、データが空の場合を防ぎます
ここに私のダイアログがあります
new AlertDialog.Builder(this)
.setTitle(R.string.add_title)
.setView(addView)
.setPositiveButton(R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
if (wrapper.getCode().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Code belum terisi");return;}
else if (wrapper.getAlamat().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Alamat belum terisi");return;}
else if (wrapper.getBatas().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Informasi batas belum terisi");return;}
else if (wrapper.getLat().equals("Unknown")) {CUtilities.showAlert(MainPetakTetap.this, "Latitude belum terdeteksi");return;}
else if (wrapper.getLon().equals("Unknown")) {CUtilities.showAlert(MainPetakTetap.this, "Longitude belum terdeteksi");return;}
else if (wrapper.getLuas().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Luas belum terisi");return;}
else if (wrapper.getTglA().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Tanggal Awal belum terisi");return;}
else if (wrapper.getTglB().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Tanggal Akhir belum terisi");return;}
else if (wrapper.getUser().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "User Id belum terisi");return;}
final DatabaseConnector dbConnector =
new DatabaseConnector(MainPetakTetap.this);
db = new DatabaseConnector(MainPetakTetap.this);
dbConnector.open();
Cursor cursor = dbConnector.getUser(wrapper);
if (!cursor.moveToFirst()) {
do {
if (cursor!=null && cursor.getCount()==0) {
db.processAddB(wrapper);
constantsCursor.requery();
}
} while (cursor.moveToNext());
}
else{
CUtilities.showAlert(MainPetakTetap.this, "Code yang anda insert sudah terdaftar!"); return;
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
if (db != null) {
db.close();
}
new AlertDialog.Builder(MainPetakTetap.this)
.setMessage("Data telah Tersimpan di aplikasi. Kirim ke Server?")
.setTitle("Pesan")
//.setView(addView)
.setPositiveButton(R.string.kirim,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
String code = wrapper.getCode();
String alamat = wrapper.getAlamat();
String batas = wrapper.getBatas();
String lat = wrapper.getLat();
String lon = wrapper.getLon();
String luas = wrapper.getLuas();
String tglA = wrapper.getTglA();
String tglB = wrapper.getTglB();
String userId = wrapper.getUser();
new ProcessSend().execute(code, alamat, batas, lat, lon, luas, tglA, tglB, userId);
//saveContact(code);
}
})
.setNegativeButton(R.string.batal,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// stop the gps when cancel
lman.removeUpdates(locaListener);
}
}).show();
}
})
.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// stop the gps when cancel
lman.removeUpdates(locaListener);
}
}).show();
これが検証です
if (wrapper.getCode().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Code belum terisi");return;}
else if (wrapper.getAlamat().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Alamat belum terisi");return;}
else if (wrapper.getBatas().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Informasi batas belum terisi");return;}
else if (wrapper.getLat().equals("Unknown")) {CUtilities.showAlert(MainPetakTetap.this, "Latitude belum terdeteksi");return;}
else if (wrapper.getLon().equals("Unknown")) {CUtilities.showAlert(MainPetakTetap.this, "Longitude belum terdeteksi");return;}
else if (wrapper.getLuas().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Luas belum terisi");return;}
else if (wrapper.getTglA().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Tanggal Awal belum terisi");return;}
else if (wrapper.getTglB().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "Tanggal Akhir belum terisi");return;}
else if (wrapper.getUser().length()==0) {CUtilities.showAlert(MainPetakTetap.this, "User Id belum terisi");return;}
私はこのコードを試して動作を検証しましたが、ダイアログは消えました。
検証で削除しようとしreturn;
ましたが、データは検証せずに直接処理されます。
データが検証されるまでダイアログを保持したい。どうやってするか?
私は本当に助けが必要です