2016-04-13 201 views
0

以下是我編寫的使用mysql登錄應用程序的.java文件。我已經找到了幫助上http://easyway2in.blogspot.in/2015/07/android-mysql-database-connect.html我在哪裏放置意圖代碼?

MainActivity.java

package com.example.soumya.attendance; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.StrictMode; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.EditText; 
public class MainActivity extends Activity{ 
    EditText ET_NAME,ET_PASS; 
    String login_name,login_pass; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ET_NAME = (EditText)findViewById(R.id.editText1); 
     ET_PASS = (EditText)findViewById(R.id.editText2); 
    } 
    public void userLogin(View view) 
    { 
     login_name = ET_NAME.getText().toString(); 
     login_pass = ET_PASS.getText().toString(); 
     String method = "login"; 
     BackgroundTask backgroundTask = new BackgroundTask(this); 
     backgroundTask.execute(method,login_name,login_pass); 
    } 
    @Override 
    public void onBackPressed() { 
     return; 
    } 
} 

BackgroundActivity.java

package com.example.soumya.attendance; 
     import android.app.AlertDialog; 
     import android.content.Context; 
     import android.content.Intent; 
     import android.os.AsyncTask; 
     import android.widget.Toast; 
     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 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 = "http://10.0.2.2/webapp/register.php"; 
     String login_url = "http://10.0.2.2/login.php"; 
     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(); 
      } 
     } 
    } 

現在,我想補充的意圖代碼,這樣如果用戶登錄成功,他/她將被帶到其他活動。但是,如果我嘗試將它放置在MainActivity.java中,它不會檢查是否成功登錄。請幫助我。其他許多人對來源也有同樣的問題。在這裏,我的login.php返回一個結果來通過echo來通知登錄是否成功。

+0

的onPostExecute –

回答

3

其操作簡單,

就放在意向碼上後執行時,登錄成功

@Override 
    protected void onPostExecute(String result) { 
     if(result.equals("Registration Success...")) 
     { 
      Toast.makeText(ctx, result, Toast.LENGTH_LONG).show(); 

     //Place the Intent Code Here. 

     Intent intent = new Intent("android.intent.category.LAUNCHER"); 
     intent.setClassName("com.your.package","com.your.package.MainActivity"); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 

     } 
     else 
     { 
      alertDialog.setMessage(result); 
      alertDialog.show(); 
      } 
     } 

編碼快樂:)

+0

意向代碼中不能被放在那裏,因爲BackgroundActivity類不擴展Activity。所以,startActivity顯示一個錯誤。而且我們不能將擴展Activity添加到BackgroundActivity類中,因爲它已經擴展了Async。 – doubtful

+0

嘗試更新回答 –

+0

在MainActivityClass(或)中運行後臺任務使用StartActivityForResult。(http://www.javatpoint.com/android-startactivityforresult-example) –