android 註冊、登錄實現程序

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/bg_01">"
    
      <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="註冊"
        android:textSize="22dip"
        android:textColor="#FFFFFF"
        android:paddingLeft="140dip"
        android:paddingRight="50dip"
        android:paddingTop="10dip"
        android:background="@drawable/topbg"
        />
    "
    <EditText 
        android:id="@+id/register_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dip"
        android:background="@drawable/search" 
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:height="40dip"
        android:hint="用戶名"
        />

     <EditText 
        android:id="@+id/register_passwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dip"
        android:background="@drawable/search" 
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:height="40dip"
        android:hint="密碼"
        />
    
      <EditText 
        android:id="@+id/reregister_passwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dip"
        android:background="@drawable/search" 
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:height="40dip"
        android:hint="確認密碼"
        />
      <Button 
          android:id="@+id/register_submit"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:background="@drawable/topbg"
          android:height="40dip"
          android:width="70dip"
          android:layout_marginTop="60dip"
          android:text="確定"
          android:textColor="#FFFFFF"
          android:textSize="22dip"
      
          />
     
</LinearLayout>

處理註冊頁面的Activity:

package com.example.foreveross.office;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import com.example.wenandroid.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class UserRegister extends Activity {
 
private EditText register_username;
private EditText register_passwd;
private EditText reregister_passwd;
private Button register_submit;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
		StrictMode.setThreadPolicy(policy);
		setContentView(R.layout.user_register);
		register_username=(EditText)findViewById(R.id.register_username);
		register_passwd=(EditText)findViewById(R.id.register_passwd);
		reregister_passwd=(EditText)findViewById(R.id.reregister_passwd);
		register_submit=(Button)findViewById(R.id.register_submit);
		register_username.setOnFocusChangeListener(new OnFocusChangeListener()
		{

			@Override
			public void onFocusChange(View v, boolean hasFocus) {
				// TODO Auto-generated method stub
				if(!hasFocus){
					if(register_username.getText().toString().trim().length()<4){
						Toast.makeText(UserRegister.this, "用戶名不能小於4個字符", Toast.LENGTH_SHORT).show();
					}
				}
			}
			
		});
		register_passwd.setOnFocusChangeListener(new OnFocusChangeListener()
		{

			@Override
			public void onFocusChange(View v, boolean hasFocus) {
				// TODO Auto-generated method stub
				if(!hasFocus){
					if(register_passwd.getText().toString().trim().length()<6){
						Toast.makeText(UserRegister.this, "密碼不能小於8個字符", Toast.LENGTH_SHORT).show();
					}
				}
			}
			
		});
		reregister_passwd.setOnFocusChangeListener(new OnFocusChangeListener()
		{

			@Override
			public void onFocusChange(View v, boolean hasFocus) {
				// TODO Auto-generated method stub
				if(!hasFocus){
					if(!reregister_passwd.getText().toString().trim().equals(register_passwd.getText().toString().trim())){
						Toast.makeText(UserRegister.this, "兩次密碼輸入不一致", Toast.LENGTH_SHORT).show(); 
					}
				}
			}
			
		});
		register_submit.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				
				if(!checkEdit()){
					return;
				}
				// TODO Auto-generated method stub
				String httpUrl="https://192.168.1.100:8080/web-test/register.jsp";
				HttpPost httpRequest=new HttpPost(httpUrl);
				List<NameValuePair> params=new ArrayList<NameValuePair>();
				params.add(new BasicNameValuePair("username",register_username.getText().toString().trim()));
				params.add(new BasicNameValuePair("password",register_passwd.getText().toString().trim()));
				HttpEntity httpentity = null;
				try {
					httpentity = new UrlEncodedFormEntity(params,"utf8");
				} catch (UnsupportedEncodingException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				httpRequest.setEntity(httpentity);
				HttpClient httpclient=new DefaultHttpClient();
				HttpResponse httpResponse = null;
				try {
					httpResponse = httpclient.execute(httpRequest);
				} catch (ClientProtocolException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(httpResponse.getStatusLine().getStatusCode()==200)
				{
					String strResult = null;
					try {
						strResult = EntityUtils.toString(httpResponse.getEntity());
					} catch (ParseException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					Toast.makeText(UserRegister.this, strResult, Toast.LENGTH_SHORT).show();
				}
				else
				{
					Toast.makeText(UserRegister.this, "請求錯誤", Toast.LENGTH_SHORT).show();
				}
				
			}
			
		});
	}
	
	private boolean checkEdit(){
		if(register_username.getText().toString().trim().equals("")){
			Toast.makeText(UserRegister.this, "用戶名不能為空", Toast.LENGTH_SHORT).show();
		}else if(register_passwd.getText().toString().trim().equals("")){
			Toast.makeText(UserRegister.this, "密碼不能為空", Toast.LENGTH_SHORT).show();
		}else if(!register_passwd.getText().toString().trim().equals(reregister_passwd.getText().toString().trim())){
			Toast.makeText(UserRegister.this, "兩次密碼輸入不一致", Toast.LENGTH_SHORT).show();
		}else{
			return true;
		}
		return false;
	}
	
}

登錄頁面xml:

user_login.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:background="@drawable/bg_01">
    
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="登錄"
        android:textSize="22dip"
        android:textColor="#FFFFFF"
        android:paddingLeft="140dip"
        android:paddingRight="50dip"
        android:paddingTop="10dip"
        android:background="@drawable/topbg"
        />
    
    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
        
        <EditText
        android:id="@+id/login_username"
        android:layout_width="fill_parent"
        android:layout_height="40dip"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:layout_marginTop="30dip"
        android:hint="用戶名"
        android:paddingTop="10dip"
        android:textSize="18dip"
        android:background="@drawable/search">
            
        </EditText>
        
        <EditText
        android:id="@+id/login_password"
        android:layout_width="fill_parent"
        android:layout_height="40dip"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:layout_marginTop="10dip"
        android:password="true"
        android:paddingTop="10dip"
        android:textSize="18dip"
        android:hint="密碼"
        android:background="@drawable/search">
            
        </EditText>
    </LinearLayout>

     <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="15dip">

         <CheckBox
             android:id="@+id/cb1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginLeft="50dip"
             android:layout_marginRight="30dip"
             android:text="記住密碼" 
             android:button="@drawable/checkbox_icon_no" />"
         <CheckBox
             android:id="@+id/cb2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="自動登錄" 
             android:paddingRight="50dip"
             android:button="@drawable/checkbox_icon_no"/>
        </LinearLayout>
        
     <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="20dip">
         <Button 
             android:id="@+id/user_login_button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="登錄"
             android:layout_marginLeft="50dip"
             android:textColor="#F7FBFD"
             android:background="#FF0000"
             android:width="70dip"
             android:height="40dip"
             android:textSize="18dip"
             />
         
            <Button 
             android:id="@+id/user_register_button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="註冊"
             android:layout_marginLeft="50dip"
             android:textColor="#F7FBFD"
             android:width="70dip"
             android:height="40dip"
             android:background="#0F9000"
             android:textSize="18dip"
             />
         
     </LinearLayout>
     
</LinearLayout>

登錄頁面Activity:

package com.example.foreveross.office;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import com.example.wenandroid.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class UserLogin extends Activity implements OnClickListener {
private EditText login_username;
private EditText login_password;
private Button user_login_button;
private Button user_register_button;

	@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
	StrictMode.setThreadPolicy(policy);
	setContentView(R.layout.user_login);
	initWidget();

}
	private void initWidget()
	{
		login_username=(EditText)findViewById(R.id.login_username);
		login_password=(EditText)findViewById(R.id.login_password);
		user_login_button=(Button)findViewById(R.id.user_login_button);
		user_register_button=(Button)findViewById(R.id.user_register_button);
		user_login_button.setOnClickListener(this);
		user_register_button.setOnClickListener(this);
		login_username.setOnFocusChangeListener(new OnFocusChangeListener()
		{

			@Override
			public void onFocusChange(View v, boolean hasFocus) {
				// TODO Auto-generated method stub
				if(!hasFocus){
					String username=login_username.getText().toString().trim();
					if(username.length()<4){
						Toast.makeText(UserLogin.this, "用戶名不能小於4個字符", Toast.LENGTH_SHORT);
					}
				}
			}
			
		});
		login_password.setOnFocusChangeListener(new OnFocusChangeListener()
		{

			@Override
			public void onFocusChange(View v, boolean hasFocus) {
				// TODO Auto-generated method stub
				if(!hasFocus){
					String password=login_password.getText().toString().trim();
					if(password.length()<4){
						Toast.makeText(UserLogin.this, "密碼不能小於4個字符", Toast.LENGTH_SHORT);
					}
				}
			}
			
		});
	}
	

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch(v.getId())
		{
		case R.id.user_login_button:
			if(checkEdit())
			{
				login();
			}
			
			break;
		case R.id.user_register_button:
			Intent intent2=new Intent(UserLogin.this,UserRegister.class);
			startActivity(intent2);
			break;
		}
	}
	
	private boolean checkEdit(){
		if(login_username.getText().toString().trim().equals("")){
			Toast.makeText(UserLogin.this, "用戶名不能為空", Toast.LENGTH_SHORT).show();
		}else if(login_password.getText().toString().trim().equals("")){
			Toast.makeText(UserLogin.this, "密碼不能為空", Toast.LENGTH_SHORT).show();
		}else{
			return true;
		}
		return false;
	}
	
	private void login(){
		String httpUrl="https://192.168.1.102:8080/web-test/login.jsp";
		HttpPost httpRequest=new HttpPost(httpUrl);
		List<NameValuePair> params=new ArrayList<NameValuePair>();
		params.add(new BasicNameValuePair("username",login_username.getText().toString().trim()));
		params.add(new BasicNameValuePair("password",login_password.getText().toString().trim()));
		HttpEntity httpentity = null;
		try {
			httpentity = new UrlEncodedFormEntity(params,"utf8");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		httpRequest.setEntity(httpentity);
		HttpClient httpclient=new DefaultHttpClient();
		HttpResponse httpResponse = null;
		try {
			httpResponse = httpclient.execute(httpRequest);
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(httpResponse.getStatusLine().getStatusCode()==200)
		{
			String strResult = null;
			try {
				strResult = EntityUtils.toString(httpResponse.getEntity());
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			Toast.makeText(UserLogin.this, strResult, Toast.LENGTH_SHORT).show();
			Intent intent=new Intent(UserLogin.this,IndexActivity.class);
			startActivity(intent);
		}
		else
		{
			Toast.makeText(UserLogin.this, "登錄失敗!", Toast.LENGTH_SHORT).show();
		}
		
	}
}

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *