package com.test.login;
import java.io.IOException;
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.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.net.MailTo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class CreateUserActivity extends Activity implements OnClickListener {
public static final String CREATE_ACCOUNT_URL = "http://10.0.2.2:8080/androidWeb/servlet/NewAccount";
public static final int MSG_CREATE_RESULT = 1;
private EditText eUsername;
private EditText ePwd1;
private EditText ePwd2;
private RadioGroup rGender;
private EditText eAge;
private EditText ePhone;
private EditText eEmail;
private Button btnSubmit;
private Button btnReset;
ProgressDialog progress;
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch(msg.what) {
case MSG_CREATE_RESULT:
progress.dismiss();
JSONObject json = (JSONObject) msg.obj;
hanleCreateAccountResult(json);
break;
}
}
};
private void hanleCreateAccountResult(JSONObject json) {
/*
* result_code:
* 0 注册成功
* 1 用户名已存在
* 2 数据库操作异常
* */
int result;
try {
result = json.getInt("result_code");
} catch (JSONException e) {
Toast.makeText(this, "没有获取到网络的响应!", Toast.LENGTH_LONG).show();
e.printStackTrace();
return;
}
if(result == 1) {
Toast.makeText(this, "用户名已存在!", Toast.LENGTH_LONG).show();
return;
}
if(result == 2) {
Toast.makeText(this, "注册失败!服务端出现异常!", Toast.LENGTH_LONG).show();
return;
}
if(result == 0) {
Toast.makeText(this, "注册成功!前往登陆界面!", Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
finish();
return;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_user_activity);
initViews();
}
private void initViews() {
eUsername = (EditText)findViewById(R.id.new_username);
ePwd1 = (EditText)findViewById(R.id.new_password_1);
ePwd2 = (EditText)findViewById(R.id.new_password_2);
rGender = (RadioGroup)findViewById(R.id.new_radio_group_gender);
eAge = (EditText)findViewById(R.id.new_age);
ePhone = (EditText)findViewById(R.id.new_phone);
eEmail = (EditText)findViewById(R.id.new_email);
btnSubmit = (Button)findViewById(R.id.new_btn_submit);
btnReset = (Button)findViewById(R.id.new_btn_reset);
btnSubmit.setOnClickListener(this);
btnReset.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.new_btn_submit:
handleCreateAccount();
break;
case R.id.new_btn_reset:
handleReset();
break;
}
}
private void handleCreateAccount() {
boolean isUsernameValid = checkUsername();
if(!isUsernameValid) {
Toast.makeText(this, "用户名不正确,请重新输入", Toast.LENGTH_LONG).show();
return;
}
int pwdResult = checkPassword();
if(pwdResult == 1) {
Toast.makeText(this, "两次输入的密码不一致,请确认!", Toast.LENGTH_LONG).show();
return;
}
if (pwdResult == 2) {
Toast.makeText(this, "密码不能为空!", Toast.LENGTH_LONG).show();
return;
}
int isAgeValid = checkAge();
if(isAgeValid == -1) {
Toast.makeText(this, "年龄不能为空!", Toast.LENGTH_LONG).show();
return;
}
if(isAgeValid == -2) {
Toast.makeText(this, "年龄超出范围(1~100)!", Toast.LENGTH_LONG).show();
return;
}
if(isAgeValid == -3) {
Toast.makeText(this, "年龄格式输入错误,请不要输入字母、符号等其他字符串!", Toast.LENGTH_LONG).show();
return;
}
if(TextUtils.isEmpty(ePhone.getText().toString())) {
Toast.makeText(this, "请输入电话号码!", Toast.LENGTH_LONG).show();
return;
}
if(TextUtils.isEmpty(eEmail.getText().toString())) {
Toast.makeText(this, "请输入邮箱!", Toast.LENGTH_LONG).show();
return;
}
createAccount();
}
private void createAccount() {
progress = new ProgressDialog(this);
progress.setCancelable(false);
progress.setCanceledOnTouchOutside(false);
progress.show(this, null, "注册中...");
new Thread(new Runnable() {
@Override
public void run() {
Log.d("yanghongbing", "Start Network!");
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(CREATE_ACCOUNT_URL);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", eUsername.getText().toString()));
params.add(new BasicNameValuePair("password", ePwd1.getText().toString()));
RadioButton selectedGender = (RadioButton)CreateUserActivity.this.findViewById(rGender.getCheckedRadioButtonId());
params.add(new BasicNameValuePair("gender",
selectedGender.getText().toString()));
params.add(new BasicNameValuePair("age", eAge.getText().toString()));
params.add(new BasicNameValuePair("phone", ePhone.getText().toString()));
params.add(new BasicNameValuePair("email", eEmail.getText().toString()));
try {
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse httpResponse = httpClient.execute(httpPost);
if(httpResponse.getStatusLine().getStatusCode() == 200) {
Log.d("yanghongbing", "Network OK!");
HttpEntity entity = httpResponse.getEntity();
String entityStr = EntityUtils.toString(entity);
String jsonStr = entityStr.substring(entityStr.indexOf("{"));
JSONObject json = new JSONObject(jsonStr);
sendMessage(MSG_CREATE_RESULT, json);
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
private boolean checkUsername() {
String username = eUsername.getText().toString();
if(TextUtils.isEmpty(username)) {
return false;
}
return true;
}
private int checkPassword() {
/*
* return value:
* 0 password valid
* 1 password not equal 2 inputs
* 2 password empty
* */
String pwd1 = ePwd1.getText().toString();
String pwd2 = ePwd2.getText().toString();
if(!pwd1.equals(pwd2)) {
return 1;
} else if(TextUtils.isEmpty(pwd1)) {
return 2;
} else {
return 0;
}
}
private int checkAge() {
/*
* return value
* 0 输入合法
* -1 输入为空
* -2输入为负数
* -3输入为非数值字符串或包括小数
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本压缩包中包含两个工程,一个是android客户端的代码,实现了注册和登陆的功能;一个是服务端的代码,由servlet编写,并且由JSP写了测试主页。 如果您需要运行此代码,需要在服务端也就是您的电脑上配置MySQL数据库,并且创建如服务端代码中指示的数据库名称和数据表,并且建立相对应的字段才能运行。本代码已在本机测试通过
资源推荐
资源详情
资源评论
收起资源包目录
android登陆注册Demo.rar (55个子文件)
androidWeb
.settings
org.eclipse.jdt.ui.prefs 96B
src
com
test
database
DBManager.java 3KB
servlet
NewAccount.java 4KB
loadMessage.java 4KB
.project 1KB
WebRoot
META-INF
MANIFEST.MF 39B
WEB-INF
web.xml 1KB
classes
com
test
database
DBManager.class 4KB
servlet
NewAccount.class 5KB
loadMessage.class 3KB
lib
gson-2.2.4-javadoc.jar 244KB
mysql-connector-java-3.1.12.zip 7.77MB
mysql-connector-java-5.0.4-bin.jar 484KB
gson-2.2.4.jar 186KB
gson-2.2.4-sources.jar 125KB
index.jsp 892B
.mymetadata 303B
.classpath 780B
.myeclipse
LoginTest
bin
classes.dex 16KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 2KB
LoginTest.apk 98KB
classes
com
test
login
R$layout.class 497B
R$id.class 2KB
R$drawable.class 429B
CreateUserActivity$1.class 1KB
R$attr.class 328B
R.class 503B
UserInfoActivity.class 2KB
CreateUserActivity.class 7KB
R$string.class 415B
LoginActivity.class 5KB
LoginActivity$2.class 4KB
CreateUserActivity$2.class 4KB
LoginActivity$1.class 1KB
resources.ap_ 88KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
background.png 73KB
ic_launcher.png 4KB
values
strings.xml 180B
drawable-mdpi
ic_launcher.png 3KB
layout
login.xml 3KB
create_user_activity.xml 8KB
main.xml 398B
user_info_activity.xml 5KB
assets
gen
com
test
login
R.java 3KB
proguard.cfg 1015B
src
com
test
login
UserInfoActivity.java 1KB
CreateUserActivity.java 9KB
LoginActivity.java 6KB
.project 845B
.classpath 364B
project.properties 361B
AndroidManifest.xml 1KB
共 55 条
- 1
yhb345
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 卡方数据.sav
- Python实现基于Django框架的二手物品购物网站设计源码+数据库.zip
- 基于Python和Django的二手物品购物网站设计源码+数据库脚本.zip
- 【计算机毕业设计】基于h5的移动网赚项目小程序【源码+lw+部署文档+讲解】
- 【计算机毕业设计】基于ssm-vue的oa系统设计与实现【源码+lw+部署文档+讲解】
- 基于pytorch实现的YOLOV5+SORT的车辆行人目标识别及追踪系统源码.zip
- 【计算机毕业设计】基于servlet+jdbc的在线选房系统设计与实现【源码+lw+部署文档+讲解】
- 投身科技创新,勇担时代先锋.pptx
- 【计算机毕业设计】基于SSM的仿微博系统的设计与实现【源码+lw+部署文档+讲解】
- 使用 Web Components 实现,遵循 Material You 设计规范的 Web 前端组件库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页