comment faire pour démarrer une nouvelle activité après la connexion de la réussite?
je veux démarrer une nouvelle activité après la connexion de la réussite. c'est lorsque la connexion va corriger une nouvelle activité devrait démarrer automatiquement...je ne sais pas où parler de startactivity. merci de m'aider, je suis un novice sur android.
c'est mon code...
public class BackgroundTask extends AsyncTask<String,Void,String> {
AlertDialog alertDialog;
Context ctx;
BackgroundTask(Context ctx)
{
this.ctx =ctx;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(ctx).create();
alertDialog.setTitle("Login Information....");
}
@Override
protected String doInBackground(String... params) {
String reg_url = "";
String login_url = "";
String method = params[0];
if (method.equals("register")) {
String name = params[1];
String user_name = params[2];
String user_pass = params[3];
try {
URL url = new URL(reg_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
//httpURLConnection.setDoInput(true);
OutputStream OS = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8"));
String data = URLEncoder.encode("user", "UTF-8") + "=" + URLEncoder.encode(name, "UTF-8") + "&" +
URLEncoder.encode("user_name", "UTF-8") + "=" + URLEncoder.encode(user_name, "UTF-8") + "&" +
URLEncoder.encode("user_pass", "UTF-8") + "=" + URLEncoder.encode(user_pass, "UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
OS.close();
InputStream IS = httpURLConnection.getInputStream();
IS.close();
//httpURLConnection.connect();
httpURLConnection.disconnect();
return "Registration Success...";
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
else if(method.equals("login"))
{
String login_name = params[1];
String login_pass = params[2];
try {
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
String data = URLEncoder.encode("login_name","UTF-8")+"="+URLEncoder.encode(login_name,"UTF-8")+"&"+
URLEncoder.encode("login_pass","UTF-8")+"="+URLEncoder.encode(login_pass,"UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String response = "";
String line = "";
while ((line = bufferedReader.readLine())!=null)
{
response+= line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return response;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String result) {
if(result.equals("Registration Success..."))
{
Toast.makeText(ctx, result, Toast.LENGTH_LONG).show();
}
else
{
alertDialog.setMessage(result);
alertDialog.show();
}
}
}
Grâce aux conseils non sollicités: si il y a plus de deux résultats possibles à partir de doInBackground, je te suggère de changer onPostExecute de prendre un argument Entier, de sorte que vous pouvez faire d'un cas de commutateur sur la valeur du résultat: par exemple "nom d'utilisateur Inconnu, délai d'attente de connexion", etc.
Aussi, pas une bonne idée de vivre Url ou d'autres potentiellement sensibles ou de renseignements exclusifs dans le code que tu postes. Pourriez voulez nettoyer ces URL.
Aussi, pas une bonne idée de vivre Url ou d'autres potentiellement sensibles ou de renseignements exclusifs dans le code que tu postes. Pourriez voulez nettoyer ces URL.
OriginalL'auteur rijo raju | 2015-09-07
Vous devez vous connecter pour publier un commentaire.
Vous pouvez mettre de l'intention dans votre onPostExecute méthode comme ceci :
Edit :
Si vous voulez appeler une nouvelle activité après la connexion succès puis mettre de l'intention de l'autre partie.
vérifier mon édité réponse.
il vous aide?
l'utilisation du ctx.startActivity(i);
vérifier édité répondre en fonction de votre variable utilisée.
OriginalL'auteur SANAT
essayer cette
OriginalL'auteur Parth Bhayani
appel dans votre onPostexecute
OriginalL'auteur Rahul Chaudhary
Dans postExecute() méthode, vous devez vérifier la méthode de la variable, veuillez consulter ci-dessous le code.
Vous devez déclarer la méthode de la variable globale dans la BackgroundTask classe.
désolé mon ami je suis encore avoir d'erreur, pourriez-vous juste de déclarer s'il vous plaît sa demande
avez-vous ajouté cette phrase - method = params[0];
Veuillez voir ma réponse.
OriginalL'auteur Sagar Zala
Que vous souhaitez démarrer une autre activité une fois votre login appel est de réussir, alors vous pouvez commencer une autre activité, soit à partir de l'arrière de la connexion de la réponse ou de la onpostExecute méthode de AsyncTask.
Pour la mise en œuvre de rappel de l'API de flux, il vous suffit de créer une interface qui a peu de moyens sans corps(uniquement déclaration) et ces méthodes doivent avoir mis en œuvre dans la classe qui implémente cette interface. Passer cette interface de l'objet en tant que constructeur de asyncTask. Une fois la connexion téléphonique obtient du succès, vous devez appeler la méthode de l'interface et à l'intérieur de cette méthode, vous pouvez démarrer une autre activité.
OriginalL'auteur Mridul Shrivastava