先写一个简单的界面
创建一个用来判断是否登录的类
package com.example.smartcity.network;
public class Utils {
public static int login=0;
}
接下来的代码如下,登录后回传用户昵称,登录成功后按钮文字显示为退出登录
package com.example.smartcity.ui.fiv;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.example.smartcity.Activity.DingDanLieBiao;
import com.example.smartcity.Activity.LoginActivty;
import com.example.smartcity.Activity.NewPaswordAcivity;
import com.example.smartcity.Activity.TiJiaoFanKuiActivity;
import com.example.smartcity.Activity.UsreInFoActivity;
import com.example.smartcity.Bean.UserInfoBean;
import com.example.smartcity.R;
import com.example.smartcity.network.RetrofitClient;
import com.example.smartcity.ui.dashboard.DashboardViewModel;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import static com.example.smartcity.network.Utils.login;
public class FivFragment extends Fragment {
private DashboardViewModel dashboardViewModel;
private View root;
private ImageView userInfoSrc;
private TextView userInfoNikeName;
private LinearLayout userInfoUserInfo;
private LinearLayout userInfoDingDan;
private LinearLayout userInfoXiuGaiMiMa;
private LinearLayout userInfoTiJaoFanKui;
private SharedPreferences user;
private Button userBut;
@SuppressLint("CommitPrefEdits")
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
dashboardViewModel =
new ViewModelProvider(this).get(DashboardViewModel.class);
root = inflater.inflate(R.layout.fivhome, container, false);
initView();
user = getActivity().getSharedPreferences("user", Context.MODE_PRIVATE);
userBut.setOnClickListener(v -> {
startActivity(new Intent(getContext(), LoginActivty.class));
SharedPreferences.Editor edit = user.edit();
edit.putString("username","");
edit.putString("password","");
edit.putString("userId","");
edit.putString("token","");
edit.apply();
});
userInfoUserInfo.setOnClickListener(v -> {
startActivity(new Intent(getContext(), UsreInFoActivity.class));
});
userInfoDingDan.setOnClickListener(v -> {
startActivity(new Intent(getContext(), DingDanLieBiao.class));
});
userInfoXiuGaiMiMa.setOnClickListener(v -> {
startActivity(new Intent(getContext(), NewPaswordAcivity.class));
});
userInfoTiJaoFanKui.setOnClickListener(v -> {
startActivity(new Intent(getContext(), TiJiaoFanKuiActivity.class));
});
return root;
}
@Override
public void onResume() {
super.onResume();
if (login==0){
userBut.setText("登录");
}else {
userBut.setText("退出登录");
getUserInfoData();
}
}
private void getUserInfoData() {
RetrofitClient.apiService().getUserInoFoData(user.getString("token","")).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
UserInfoBean body = response.body();
if (body!=null&&body.getCode()==200) {
UserInfoBean.UserBean user = body.getUser();
String nickName = user.getNickName();
userInfoNikeName.setText(nickName);
}
}
@Override
public void onFailure(Call call, Throwable throwable) {
}
});
}
private void initView() {
userInfoSrc = (ImageView) root.findViewById(R.id.userInfo_src);
userInfoNikeName = (TextView) root.findViewById(R.id.userInfo_nikeName);
userInfoUserInfo = (LinearLayout) root.findViewById(R.id.userInfo_userInfo);
userInfoDingDan = (LinearLayout) root.findViewById(R.id.userInfo_DingDan);
userInfoXiuGaiMiMa = (LinearLayout) root.findViewById(R.id.userInfo_xiuGaiMiMa);
userInfoTiJaoFanKui = (LinearLayout) root.findViewById(R.id.userInfo_TiJaoFanKui);
userBut = root.findViewById(R.id.fiv_but);
}
}



