目录
一,思维导图
二,创建视图
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".bFragment"
android:background="#f2a0a1"
android:orientation="vertical">
<EditText
android:id="@+id/text_a"
android:layout_marginTop="50dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_height="30dp"
android:background="#e7e7eb"/>
<TextView
android:text="请输入账号"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/text_b"
android:layout_marginTop="50dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_height="30dp"
android:background="#e7e7eb"/>
<TextView
android:text="请输入密码"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/login_1"
android:textSize="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="50dp"
android:text="登录"
android:gravity="center"
android:background="#84a2d4"/>
</LinearLayout>
三,绑定控件
FragmentBBinding fragmentBBinding =FragmentBBinding.inflate(inflater,container,false);
View view =fragmentBBinding.getRoot();
login = view.findViewById(R.id.login_1);
editText1 = view.findViewById(R.id.text_a);
editText2 = view.findViewById(R.id.text_b);
四,写Bean类
package com.example.city_pro;
import java.util.List;
public class login {
public DataDTO data;
public Integer errorCode;
public String errorMsg;
public DataDTO getData() {
return data;
}
public void setData(DataDTO data) {
this.data = data;
}
public Integer getErrorCode() {
return errorCode;
}
public void setErrorCode(Integer errorCode) {
this.errorCode = errorCode;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
@Override
public String toString() {
return "login{" +
"data=" + data +
", errorCode=" + errorCode +
", errorMsg='" + errorMsg + '\'' +
'}';
}
public static class DataDTO {
public Boolean admin;
public List<?> chapterTops;
public Integer coinCount;
public List<?> collectIds;
public String email;
public String icon;
public Integer id;
public String nickname;
public String password;
public String publicName;
public String token;
public Integer type;
public String username;
public Boolean getAdmin() {
return admin;
}
public void setAdmin(Boolean admin) {
this.admin = admin;
}
public List<?> getChapterTops() {
return chapterTops;
}
public void setChapterTops(List<?> chapterTops) {
this.chapterTops = chapterTops;
}
public Integer getCoinCount() {
return coinCount;
}
public void setCoinCount(Integer coinCount) {
this.coinCount = coinCount;
}
public List<?> getCollectIds() {
return collectIds;
}
public void setCollectIds(List<?> collectIds) {
this.collectIds = collectIds;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPublicName() {
return publicName;
}
public void setPublicName(String publicName) {
this.publicName = publicName;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return "DataDTO{" +
"admin=" + admin +
", chapterTops=" + chapterTops +
", coinCount=" + coinCount +
", collectIds=" + collectIds +
", email='" + email + '\'' +
", icon='" + icon + '\'' +
", id=" + id +
", nickname='" + nickname + '\'' +
", password='" + password + '\'' +
", publicName='" + publicName + '\'' +
", token='" + token + '\'' +
", type=" + type +
", username='" + username + '\'' +
'}';
}
}
}
五,写API
@POST("user/login")
@FormUrlEncoded
Call<login> loginin(@Field("username") String username, @Field("password")String password);
六,申请JSON
这步要说一下要在登录的按钮上写点击事件在点击事件上写申请json的代码
最后它会输出一个log打印你的账号名
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
text_a = editText1.getText().toString().trim();
text_b = editText2.getText().toString().trim();
Api api= RetrofitManager.getRetrofit().create(Api.class);
Call<login> tesk=api.loginin(text_a, text_b);
tesk.enqueue(new Callback<login>() {
@Override
public void onResponse(Call<login> call, Response<login> response) {
if (response.code()== HttpURLConnection.HTTP_OK){
Log.i(TAG,"账号是"+response.body().getData().username.toString());
}
}
@Override
public void onFailure(Call<login> call, Throwable t) {
}
});
}
});