android 註冊、登入實現程式
阿新 • • 發佈:2019-02-03
註冊頁面:
user_register.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://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="http://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="http://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="http://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();
}
}
}
登入成功則跳轉到IndexActivity.java