<?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;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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(){@Overridepublic void onFocusChange(View v, boolean hasFocus) {// TODO Auto-generated method stubif(!hasFocus){if(register_username.getText().toString().trim().length()<4){Toast.makeText(UserRegister.this, "使用者名稱不能小於4個字元", Toast.LENGTH_SHORT).show();}}}});register_passwd.setOnFocusChangeListener(new OnFocusChangeListener(){@Overridepublic void onFocusChange(View v, boolean hasFocus) {// TODO Auto-generated method stubif(!hasFocus){if(register_passwd.getText().toString().trim().length()<6){Toast.makeText(UserRegister.this, "密碼不能小於8個字元", Toast.LENGTH_SHORT).show();}}}});reregister_passwd.setOnFocusChangeListener(new OnFocusChangeListener(){@Overridepublic void onFocusChange(View v, boolean hasFocus) {// TODO Auto-generated method stubif(!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(){@Overridepublic void onClick(View v) {if(!checkEdit()){return;}// TODO Auto-generated method stubString 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 blocke.printStackTrace();}httpRequest.setEntity(httpentity);HttpClient httpclient=new DefaultHttpClient();HttpResponse httpResponse = null;try {httpResponse = httpclient.execute(httpRequest);} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(httpResponse.getStatusLine().getStatusCode()==200){String strResult = null;try {strResult = EntityUtils.toString(httpResponse.getEntity());} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.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;@Overrideprotected 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(){@Overridepublic void onFocusChange(View v, boolean hasFocus) {// TODO Auto-generated method stubif(!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(){@Overridepublic void onFocusChange(View v, boolean hasFocus) {// TODO Auto-generated method stubif(!hasFocus){String password=login_password.getText().toString().trim();if(password.length()<4){Toast.makeText(UserLogin.this, "密碼不能小於4個字元", Toast.LENGTH_SHORT);}}}});}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(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 blocke.printStackTrace();}httpRequest.setEntity(httpentity);HttpClient httpclient=new DefaultHttpClient();HttpResponse httpResponse = null;try {httpResponse = httpclient.execute(httpRequest);} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(httpResponse.getStatusLine().getStatusCode()==200){String strResult = null;try {strResult = EntityUtils.toString(httpResponse.getEntity());} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.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();}}}