依赖
implementation 'com.google.code.gson:gson:2.8.2' implementation 'org.xutils:xutils:3.5.0'权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />别忘了引入
android:name=".application.RegistApplication"布局
activity_main
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="bwei.com.wanghongyun20180424.MainActivity"> <EditText android:id="@+id/et_mobile" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="64dp" android:hint="请输入手机号" android:inputType="number" /> <EditText android:id="@+id/et_password" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_below="@id/et_mobile" android:layout_centerHorizontal="true" android:layout_marginTop="10dp" android:hint="请输入密码" android:inputType="textPassword" /> <Button android:id="@+id/btn_login" android:layout_width="100dp" android:layout_height="wrap_content" android:text="登录" android:layout_below="@id/et_password" android:layout_marginLeft="70dp" /> <Button android:id="@+id/btn_regist" android:layout_width="100dp" android:layout_height="wrap_content" android:text="注册" android:layout_below="@id/et_password" android:layout_toRightOf="@id/btn_login" /> </RelativeLayout>activity_main2
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="bwei.com.wanghongyun20180424.Main2Activity"> <EditText android:id="@+id/et_mobile" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="64dp" android:hint="请输入手机号" android:inputType="number" /> <EditText android:id="@+id/et_password" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_below="@id/et_mobile" android:layout_centerHorizontal="true" android:layout_marginTop="10dp" android:hint="请输入密码" android:inputType="textPassword" /> <Button android:id="@+id/btn_regist" android:layout_width="200dp" android:layout_height="wrap_content" android:text="立即注册" android:textColor="@color/colorPrimary" android:layout_below="@id/et_password" android:layout_centerHorizontal="true" /> </RelativeLayout>
activity_main3
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="bwei.com.wanghongyun20180424.Main3Activity"> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="个人信息" /> <View android:layout_below="@+id/text" android:layout_width="match_parent" android:layout_height="1dp" android:background="#000"></View> <Button android:layout_width="100dp" android:layout_height="50dp" android:text="推出登录" android:id="@+id/btn" android:layout_below="@id/text" android:onClick="tui"/> </RelativeLayout>
MainActivity
package bwei.com.wanghongyun20180424; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.google.gson.Gson; import org.xutils.common.Callback; import org.xutils.http.RequestParams; import org.xutils.x; import java.util.regex.Matcher; import java.util.regex.Pattern; public class MainActivity extends AppCompatActivity { private Button btn_login; private Button btn_regist; private EditText et_mobile; private EditText et_password; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //查找控件 btn_login = findViewById(R.id.btn_login); btn_regist = findViewById(R.id.btn_regist); et_mobile = findViewById(R.id.et_mobile); et_password = findViewById(R.id.et_password); btn_regist.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } }); btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String mobile = et_mobile.getText().toString().trim(); String password = et_password.getText().toString().trim(); //判断输入的内容是否为phone boolean b = isPhoneNumber(mobile); if (mobile.isEmpty() || password.isEmpty()) { Toast.makeText(MainActivity.this, "用户名/密码不能为空", Toast.LENGTH_SHORT).show(); } else if (!b) { Toast.makeText(MainActivity.this, "手机号不合法", Toast.LENGTH_SHORT).show(); } else if (password.length() < 6) { Toast.makeText(MainActivity.this, "密码不能少于六位数", Toast.LENGTH_SHORT).show(); } else { login(mobile, password); } } }); } private boolean isPhoneNumber(String phoneStr) { //定义电话格式的正则表达式 String regex = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"; //设定查看模式 Pattern p = Pattern.compile(regex); //判断Str是否匹配,返回匹配结果 Matcher m = p.matcher(phoneStr); return m.find(); } private void login(String mobile,String password){ RequestParams params = new RequestParams("http://120.27.23.105/user/login"); params.addQueryStringParameter("mobile",mobile); params.addQueryStringParameter("password",password); x.http().get(params, new Callback.CacheCallback<String>() { @Override public void onSuccess(String result) { //成功 Gson gson = new Gson(); LoginBean loginBean = gson.fromJson(result, LoginBean.class); Toast.makeText(MainActivity.this,loginBean.getMsg(), Toast.LENGTH_SHORT).show(); if (loginBean.getCode().equals("0")){ Intent intent = new Intent(MainActivity.this, Main3Activity.class); startActivity(intent); } } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } @Override public boolean onCache(String result) { return false; } }); } }Main2Activity
package bwei.com.wanghongyun20180424; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.google.gson.Gson; import org.xutils.common.Callback; import org.xutils.http.RequestParams; import org.xutils.x; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main2Activity extends AppCompatActivity { private EditText et_mobile; private EditText et_password; private Button btn_regist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); Intent intent = getIntent(); et_mobile = findViewById(R.id.et_mobile); et_password = findViewById(R.id.et_password); btn_regist = findViewById(R.id.btn_regist); btn_regist.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String mobile = et_mobile.getText().toString().trim(); String password = et_password.getText().toString().trim(); //判断输入的内容是否为phone boolean b = isPhoneNumber(mobile); if (mobile.isEmpty() || password.isEmpty()) { Toast.makeText(Main2Activity.this, "用户名/密码不能为空", Toast.LENGTH_SHORT).show(); } else if (!b) { Toast.makeText(Main2Activity.this, "手机号不合法", Toast.LENGTH_SHORT).show(); } else if (password.length() < 6) { Toast.makeText(Main2Activity.this, "密码不能少于六位数", Toast.LENGTH_SHORT).show(); } else { register(mobile, password); } } }); } private boolean isPhoneNumber(String phoneStr) { //定义电话格式的正则表达式 String regex = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"; //设定查看模式 Pattern p = Pattern.compile(regex); //判断Str是否匹配,返回匹配结果 Matcher m = p.matcher(phoneStr); return m.find(); } private void register(String mobile,String password){ RequestParams params = new RequestParams("http://120.27.23.105/user/reg"); params.addQueryStringParameter("mobile",mobile); params.addQueryStringParameter("password",password); x.http().get(params, new Callback.CacheCallback<String>() { @Override public void onSuccess(String result) { //成功 Gson gson = new Gson(); RegistBean registBean = gson.fromJson(result, RegistBean.class); //如果注册成功就返回登录页面 Toast.makeText(Main2Activity.this,registBean.getMsg(), Toast.LENGTH_SHORT).show(); if (registBean.getCode().equals("0")){ finish(); } } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } @Override public boolean onCache(String result) { return false; } }); } }
Main3Activity
package bwei.com.wanghongyun20180424; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class Main3Activity extends AppCompatActivity { private TextView text; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); text = findViewById(R.id.text); btn = findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(Main3Activity.this,MainActivity.class); startActivity(intent); } }); } public void tui(View view) { } }
LoginBean
http://120.27.23.105/user/login
RegistBean
http://120.27.23.105/user/reg
RegistApplication
package bwei.com.wanghongyun20180424.application; import android.app.Application; import org.xutils.x; import bwei.com.wanghongyun20180424.BuildConfig; /** * Created by why on 2018/4/24. */ public class RegistApplication extends Application { public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(BuildConfig.DEBUG); } }