效果图
先创建Springboot项目
controller
import com.example.app_cs.pojo.User;
import com.example.app_cs.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")
public String userLogin(@RequestBody User user){
return userService.userLogin(user) > 0 ? "登录成功" : "登录失败";
}
}
service
import com.example.app_cs.pojo.User;
public interface UserService {
int userLogin(User user);
}
serviceImpl
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public int userLogin(User user) {
return userMapper.userLogin(user);
}
}
mapper.java
@Mapper
public interface UserMapper {
Integer userLogin(User user);
}
mapper.xml
<mapper namespace="com.example.app_cs.mapper.UserMapper">
<select id="userLogin" resultType="java.lang.Integer">
select Count(*) from CS_USER
where PHONENUMBER = #{phone}
and PASSWORD = #{password}
</select>
</mapper>
创建安卓项目
activity_main.xml
1.RelativeLayout中设置了一个图片当背景,如果不需要可以删除,删除后页面就会变成白色
2.所以删除之后需要修改所有的android:textColorHint 的颜色
3.还要修改下面的shape.xml文件中颜色
如果不想修改的话,就是说找一个背景颜色放上去看看效果得了
<?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=".MainActivity"
android:background="@drawable/beijing"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="100dp">
<EditText
android:id="@+id/et_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名/手机号"
android:lines="1"
android:textColorHint="#fff"
android:textSize="16sp"
tools:layout_editor_absoluteX="3dp"
tools:layout_editor_absoluteY="237dp" />
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/et_phone"
android:inputType="textPassword"
android:lines="1"
android:hint="密码"
android:textSize="16sp"
android:textColorHint="#fff"
tools:layout_editor_absoluteX="24dp"
tools:layout_editor_absoluteY="182dp" />
<LinearLayout
android:id="@+id/ly_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/et_password"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/cb_rm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/et_password"
android:layout_gravity="left"
android:layout_weight="3"
android:hint="记住密码"
android:textSize="14sp"
android:textColorHint="#fff"
/>
<TextView
android:id="@+id/btn_register"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right"
android:layout_weight="1"
android:gravity="center"
android:textSize="14sp"
android:hint="注册"
android:textColorHint="#fff"/>
</LinearLayout>
<Button
android:id="@+id/btn_login"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_below="@id/ly_1"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:background="@drawable/shape"
android:text="登录"
android:textColor="#fff"
android:theme="@style/myStyle"/>
</RelativeLayout>
在values中的themes.xml文件下添加(有些项目创建之后可能名字是style.xml)
<style name="myStyle" parent="Theme.Reduce_Weight">
<item name="colorPrimary">@color/white</item>
</style>
在drawable中创建shape.xml(这主要是将按钮变成圆角,白色边框)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!--//设置圆角-->
<corners android:radius="10dp" />
<!-- //设置颜色-->
<!-- <solid android:color="#fff"/>-->
<!-- //设置透明-->
<solid android:color="@android:color/transparent"/>
<!-- //设置半透明-->
<!-- <solid android:color="#66FFFF00"/>-->
<!-- //设置button的大小-->
<!-- <size
android:height="50dp"
android:width="320dp" />-->
<!-- //设置button的内边距-->
<!-- <padding android:left="5dp"
android:right="5dp"
android:top="5dp"
android:bottom="5dp"/>-->
<!-- 连框宽度和颜色值 -->
<stroke
android:width="2dp"
android:color="#fff" />
</shape>
MainActivity.java
注意里面url中的地址 , 这里面写的是默认的 , 每个人的电脑连的wifi不一样 , 所以里面的内容也要改
方式在最后面
package com.example.reduce_weight;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
//声明SharedPreferences储存(键值对的方式存储数据)
private SharedPreferences preferences;
private SharedPreferences.Editor editor;
private CheckBox rememberPass;
private EditText phoneEdit;
private EditText passwordEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//隐藏标题栏
ActionBar actionBar = getSupportActionBar();
if (actionBar!=null) {
actionBar.hide();
}
//绑定控件
Button btn_login = (Button) findViewById(R.id.btn_login);
phoneEdit = (EditText) findViewById(R.id.et_phone);
passwordEdit = (EditText) findViewById(R.id.et_password);
preferences = PreferenceManager.getDefaultSharedPreferences(this);
rememberPass = (CheckBox) findViewById(R.id.cb_rm);
//第一次肯定为没选中
boolean isRemember = preferences.getBoolean("remember_password", false);
if (isRemember) {
String account = preferences.getString("account", "");
String password = preferences.getString("password", "");
phoneEdit.setText(account);
passwordEdit.setText(password);
rememberPass.setChecked(true);
}
btn_login.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_login:
//获取文本文字
String phone = phoneEdit.getText().toString();
String password = passwordEdit.getText().toString();
editor = preferences.edit();
//判断是否选中
if (rememberPass.isChecked()) {
//选中则保存
editor.putBoolean("remember_password", true);
editor.putString("account", phone);
editor.putString("password", password);
} else {
//没选中则清空文本框
editor.clear();
}
editor.apply();
//Json数据形式
String json = "{\n" +
" \"phone\": \"" + phone + "\",\n" +
" \"password\": \"" + password + "\"\n" +
"}";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://localhost:8080/user/login")
.post(RequestBody.create(MediaType.parse("application/json"),json))
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println(e.getMessage()); //请求失败
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String login = response.body().string();
if (!login.equals("登录成功")){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
}
});
} else {
Intent logon = new Intent(MainActivity.this, IndexActivity.class);
startActivity(logon);
}
}
});
/*if (phone.equals("haha") && password.equals("123")){
} else {
Intent logon = new Intent(this, LogonActivity.class);
startActivity(logon);
finish();
break;
}*/
}
}
}
如果是模拟器的话
1.首先找到android项目里面的AndroidManifest.xml 在<application>标签上面添加网络权限
<uses-permission android:name="android.permission.INTERNET" />
2.File--Settings之后出现以下界面,挨个点
3. 知道SDK目录后 , 在自己电脑的文件夹中打开 , 找到里面的platform-tools文件夹 , 复制这个文件夹的地址 , 右击我的电脑 ---属性 --- 高级系统设置 --- 环境变量 --- 系统变量下面的Path 点击编辑将刚才的地址放入进去,依次点确定
4.运行自己的虚拟机
Win+R输入cmd之后输入ipconfig/all
找到DNS记住这个的号码
在输入adb shell 如果出现 generic_x86:/$ 就是可以
在他后面输入 exit 退出出去
再输入adb root
再输入 adb shell 出现 generic_x86:/$ 之后 输入getprop回车
在里面找到[net.x.dns1] (x代表的是不一样的值 我的是 net.radip0.dns1)
接下来输入 setprop net.radio0.dns.这里填刚才记住的DNS
5.打开虚拟机的wifi设置,点击androidWifi 进去之后右上角找到 Madfy 把 Ipsettings 改成Static
随后将dns填写进去
这样就配好了
6.win + R 输入cmd 再输入ipconfig就可以看到自己的IPv4 地址 , 将这个地址放MainActivity.java中
.url("http://190:xxx:xxx:8080/user/login")
真机的话,让手机和电脑连接同一个wifi,,然后把url改成IPv4地址就行