Ich möchte überprüfen, ob die E-Mail-ID vom Benutzer eingegeben ist einzigartig oder nicht so für das ich habe zunächst meine Variable Boolean valid = false;
. Beim Klicken auf eine Schaltfläche nehme ich die eingegebene E-Mail-ID und überprüfe sie auf einen gültigen E-Mail-ID-Ausdruck unter Verwendung eines regulären Ausdrucks und dann verwende ich eine Asyntask, um ihre Eindeutigkeit zu überprüfen. Code in meinem onclicklistner istPrograme nicht in korrekter Reihenfolge in Android Studio
if (emailid.matches(regexp) && emailid.length() > 0) { new Validate().execute(); Toast.makeText(getApplicationContext(), valid.toString(), Toast.LENGTH_LONG).show(); if (valid) { data.putString("eid", eid); data.putString("firstname", firstname); data.putString("lastname", lastname); data.putString("emailid", emailid); Intent i = new Intent(getApplicationContext(), GamesFragment.class); startActivity(i); } else { Toast.makeText(getApplicationContext(), "Email Address Already Exist", Toast.LENGTH_LONG).show(); } } else { Toast.makeText(getApplicationContext(), "Check Your Email Address", Toast.LENGTH_LONG).show(); }
Hier welches Problem i ist, für das erste Mal bin vor, wenn ich eine E-Mail am Eintritt in die einzigartig ist und klickt auf die Schaltfläche, die Validate()
AsyncTask prüft und setzt die valid
Variable auf true , aber es geht nicht zur nächsten Aktivität GamesFragment
, weil ich anfangs valid = false
erklärt habe. Wenn ich jetzt erneut auf die Schaltfläche klicke, geht es zur nächsten Aktivität, da die Variable valid
aufgrund eines vorherigen Klicks auf true gesetzt ist. Now My Validate()
AsyncTask ist
private class Validate extends AsyncTask<Void, Void, Void> {
@Override
protected Boolean doInBackground(Void... params) {
ArrayList<NameValuePair> emailId = new ArrayList<NameValuePair>();
emailId.add(new BasicNameValuePair("email", emailid));
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("url/validate.php");
httppost.setEntity(new UrlEncodedFormEntity(emailId));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
iss = entity.getContent();
} catch(Exception e) {
Log.e("pass 1", "Connection Error");
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader
(new InputStreamReader(iss,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null)
sb.append(line + "\n");
iss.close();
result = sb.toString();
} catch(Exception e) {
e.printStackTrace();
}
try {
JSONObject json_data = new JSONObject(result);
code=(json_data.getInt("code"));
if(code == 1)
valid = true;
else
valid = false;
Log.e("pass 3", "valid "+valid);
} catch(Exception e) {
e.printStackTrace();
}
return null;
}
}
Bitte helfen i immer bin nicht, warum dies geschieht.
Validate ist in Ihrem gleichen Klasse richtig? @AdnanMomin – KDeogharkar
ja @KDeogharkar – knownUnknown
validieren ist meine ** innere Klasse ** – knownUnknown