如何在Android登录成功后开始新活动?

时间:2016-07-13 17:58:20

标签: java android android-activity

我需要在登录成功后开始新的活动。我不知道从一个到另一个开始活动的代码以及如何在下面的代码中执行它,我有这个东西的代码在这里,在这些是后台workers.java的代码,我们有两个面板:

package com.example.androidphp2016;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

public class BackgroundWorker extends AsyncTask<String,Void,String> {
    Context context;
    AlertDialog alertDialog;
    BackgroundWorker (Context ctx) {
        context = ctx;
    }
    @Override
    protected String doInBackground(String... params) {
        String type = params[0];
        String login_url1="http://adminlogin.php";
        String login_url2="http://studentlogin.php";
        if(type.equals("login1")) {
            try {
                String user_name = params[1];
                String password = params[2];
                URL url = new URL(login_url1);
                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 post_data = URLEncoder.encode("user_name","UTF-8")+"="+URLEncoder.encode(user_name,"UTF-8")+"&"
                        +URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
                bufferedWriter.write(post_data);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();
                InputStream inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
                String result="";
                String line="";
                while((line = bufferedReader.readLine())!= null) {
                    result += line;
                }
                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                return result;
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if(type.equals("login2")) {
            try {
                String user_name = params[1];
                String password = params[2];
                URL url = new URL(login_url2);
                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 post_data = URLEncoder.encode("user_name","UTF-8")+"="+URLEncoder.encode(user_name,"UTF-8")+"&"
                        +URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
                bufferedWriter.write(post_data);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();
                InputStream inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
                String result="";
                String line="";
                while((line = bufferedReader.readLine())!= null) {
                    result += line;
                }
                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                return result;
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onPreExecute() {
        alertDialog = new AlertDialog.Builder(context).create();
        alertDialog.setTitle("Login Status");
    }

    @Override
    protected void onPostExecute(String result) {
        alertDialog.setMessage(result);
        alertDialog.show();

    }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }
}

3 个答案:

答案 0 :(得分:1)

在你的onPostExecute方法中检查结果是否正确,如果是,则登录成功,然后添加代码:

 Intent i = new Intent(getApplicationContext(), MainActivity.class);
                i.putExtra("caller", "LoginActivity");
                startActivity(i);
                finish();

我还建议您使用以下方法解除alertDialog:alertDialog.dismiss();

答案 1 :(得分:0)

我通过将此代码添加到OnPostExecute中解决了这个问题,然后我在Manifest.xml中声明了两个活动。谢谢你的帮助。

  protected void onPostExecute(String result) {

    if(result.equals("Admin login success")){

         Intent intent = new Intent(context, adminpanel.class);
         context.startActivity(intent);
    }
    if(result.equals("Student Login Success")){

     Intent intent = new Intent(context, studentpanel.class);
    context.startActivity(intent);
   }
    else
    {
        alertDialog.setMessage(result);
        alertDialog.show();
    }
}

答案 2 :(得分:-1)

好的,因此,要打开新活动,您必须根据您的代码以正确的格式使用这些代码,

Intent i = new Intent(FromfirstActivity.this, TosecondActivity.class);
 startActivity(i);

它肯定会有所帮助,谢谢