创建写入api的接口
//修改密码
@PUT("/prod-api/api/common/user/resetPwd")
Call<MsgCodeBean> getMyPasswordData(@Header("Authorization") String token, @Body MyPasswordPutBean myPasswordPutBean);
创建写入url请求地址的类
public class RetrofiClient {
public static final String IP = "http://124.93.196.45:10091";
private static Retrofit retrofit = new Retrofit.Builder()
// 网络请求url地址
.baseUrl(IP)
// 网络请求适配器工厂的集合
.addConverterFactory(GsonConverterFactory.create())
.build();
private RetrofiClient() {
}
public static Retrofit getRetrofit() {
return retrofit;
}
public static APIService apiService() {
return retrofit.create(APIService.class);
}
public static ServiceService serviceService() {
return retrofit.create(ServiceService.class);
}
这里使用的是(Retrofit)的请求方法
public static APIService apiService() { return retrofit.create(APIService.class); }
这里写入的是api的接口类
接下来就是写布局页面了 这里我就写一个简单的哦
<LinearLayout
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"
android:orientation="vertical"
tools:context=".fragment.MyUserPasswordActivity">
<EditText
android:id="@+id/my_password_old"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:inputType="textPassword"
android:hint="请输入原密码:"/>
<EditText
android:id="@+id/my_password_new"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:inputType="textPassword"
android:hint="请输入新密码:"/>
<EditText
android:id="@+id/my_password_confirm"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="10dp"
android:inputType="textPassword"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:hint="请输入确认密码:"/>
<Button
android:id="@+id/my_password_button"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="40dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="@color/teal_700"
android:text="确认密码"
android:textSize="18sp"
android:textColor="#eee"/>
界面如图所示 页面比较简单哦
嗷嗷嗷 差点忘记了 记得要有一个实体类哦 这里就是用postman比较省时间
public class MyPasswordPutBean {
public MyPasswordPutBean() {
}
public MyPasswordPutBean(String oldPwd, String password) {
this.oldPwd = oldPwd;
this.password = password;
}
/**
* oldPwd : admin12
* password : 123456
*/
@SerializedName("oldPassword")
private String oldPwd;
@SerializedName("newPassword")
private String password;
public String getOldPwd() {
return oldPwd;
}
public void setOldPwd(String oldPwd) {
this.oldPwd = oldPwd;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
下面就是主类的内容了
对布局里面的id进行初始化
public class MyUserPasswordActivity extends AppCompatActivity {
private EditText myPasswordOld;
private EditText myPasswordNew;
private EditText myPasswordConfirm;
private Button myPasswordButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_user);
// 初始化
inintView();
// 获取SharedPreferences的对象
SharedPreferences user = getSharedPreferences("user", MODE_PRIVATE);
myPasswordButton.setOnClickListener(v -> {
String oldPwd = myPasswordOld.getText().toString().trim();
String newPwd = myPasswordNew.getText().toString().trim();
String pwdConfirm = myPasswordConfirm.getText().toString().trim();
if (TextUtils.isEmpty(oldPwd)){
Toast.makeText(MyUserPasswordActivity.this,"原密码不能为空",Toast.LENGTH_SHORT).show();
}if (TextUtils.isEmpty(newPwd)){
Toast.makeText(MyUserPasswordActivity.this,"新密码不能为空",Toast.LENGTH_SHORT).show();
}if (TextUtils.isEmpty(pwdConfirm)){
Toast.makeText(MyUserPasswordActivity.this,"确认密码不能为空",Toast.LENGTH_SHORT).show();
}if (!TextUtils.equals(newPwd,pwdConfirm)){
Toast.makeText(MyUserPasswordActivity.this,"两次密码输入不一致,请重新输入",Toast.LENGTH_SHORT).show();
}
MyPasswordPutBean myPasswordPutBean = new MyPasswordPutBean(oldPwd, newPwd);
// 调用修改密码的接口api
RetrofiClient.apiService().getMyPasswordData(user.getString("token",""),myPasswordPutBean).enqueue(new Callback<MsgCodeBean>() {
@Override
public void onResponse(Call<MsgCodeBean> call, Response<MsgCodeBean> response) {
MsgCodeBean body = response.body();
if (body!=null&&body.getCode()==200) {
Toast.makeText(MyUserPasswordActivity.this,body.getMsg(),Toast.LENGTH_SHORT).show();
// 存入数据
SharedPreferences.Editor editor=user.edit();
editor.putString("password",newPwd);
editor.apply();
finish();
}else {
Toast.makeText(MyUserPasswordActivity.this,body.getMsg(),Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<MsgCodeBean> call, Throwable t) {
}
});
});
}
private void inintView() {
myPasswordOld = (EditText) findViewById(R.id.my_password_old);
myPasswordNew = (EditText) findViewById(R.id.my_password_new);
myPasswordConfirm = (EditText) findViewById(R.id.my_password_confirm);
myPasswordButton = (Button) findViewById(R.id.my_password_button);
}