//个人界面的样式表
<?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=".fragment.subway.SubPersonFragment"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/back"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@drawable/ic_back_s"
android:layout_gravity="center"
android:layout_marginLeft="20dp"/>
<LinearLayout
android:layout_width="180dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="个人中心"
android:textSize="25dp"
android:layout_marginTop="15dp"
android:layout_marginLeft="70dp"/>
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c7c7c7"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:orientation="horizontal">
<ImageView
android:id="@+id/person_head_img"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/ic_head_img"
android:layout_gravity="center"
android:layout_marginLeft="20dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/person_nickname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="立即登录"
android:textSize="20dp"
android:layout_marginTop="20dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/username_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="账号:"
android:layout_marginTop="10dp"
android:visibility="gone"/>
<TextView
android:id="@+id/person_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="111"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="栏目"
android:layout_marginLeft="10dp"/>
<ListView
android:id="@+id/subway_person_column"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="8"
android:layout_marginTop="10dp"/>
</LinearLayout>
//返回个人界面的fragment(在创建几个需要跳转的Activity)
public class PersonFragment extends Fragment {
private ImageView mPersonHeadImg;
private TextView mPersonNickname;
private TextView mUsernameTitle;
private TextView mPersonUsername;
private ListView mPersonInfo;
private Button mPersonBtnExit;
private PersonInfo personInfo1;
private PersonInfo personInfo2;
private PersonInfo personInfo3;
private PersonInfo personInfo4;
private String token;
GetPersonInfo json;
Handler handler = new Handler(Looper.myLooper()){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case GET_INFO_WHAT:
json = (GetPersonInfo) msg.obj;
showInfo();
break;
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_person, container, false);
mPersonHeadImg = (ImageView) view.findViewById(R.id.person_head_img);
mPersonNickname = (TextView) view.findViewById(R.id.person_nickname);
mUsernameTitle = (TextView) view.findViewById(R.id.username_title);
mPersonUsername = (TextView) view.findViewById(R.id.person_username);
mPersonInfo = (ListView) view.findViewById(R.id.person_info);
mPersonBtnExit = (Button) view.findViewById(R.id.person_btn_exit);
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
loadPersonInfo();
mPersonNickname.setOnClickListener(new NickNameClick());
mPersonInfo.setOnItemClickListener(new PersonInfoItemClick());
mPersonBtnExit.setOnClickListener(new PersonBrnExitClick());
}
@Override
public void onResume() {
super.onResume();
token = CacheUtils.getString(getContext(), TOKEN);//取出token
if (token != null){
new initHomeHttp(handler).getInfoData(getContext(),token);//初始化用户信息
}
}
//退出登录
class PersonBrnExitClick implements View.OnClickListener{
@Override
public void onClick(View v) {
CacheUtils.clearString(getContext(),TOKEN);
CacheUtils.clearString(getContext(),USER_INFO);
mPersonBtnExit.setVisibility(View.GONE);
mPersonNickname.setText("立即登录");
mUsernameTitle.setVisibility(View.GONE);
mPersonUsername.setText("");
Toast.makeText(getContext(),"退出成功!",Toast.LENGTH_SHORT).show();
}
}
//条目点击跳转
class PersonInfoItemClick implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position){
case 0:
Intent intentInfo = new Intent(getContext(), InfoActivity.class);
startActivity(intentInfo);
break;
case 1:
Intent intentOrder = new Intent(getContext(), EmptyActivity.class);
intentOrder.putExtra(VALUES,"订单列表");
startActivity(intentOrder);
break;
case 2:
Intent intentPwd = new Intent(getContext(), ModifyPwdActivity.class);
startActivity(intentPwd);
break;
case 3:
Intent intentSuggestion = new Intent(getContext(), SuggestionActivity.class);
startActivity(intentSuggestion);
break;
}
}
}
//显示信息
public void showInfo() {
mPersonNickname.setText(json.getUser().getNickName());
mUsernameTitle.setVisibility(View.VISIBLE);
mPersonUsername.setVisibility(View.VISIBLE);
mPersonUsername.setText(json.getUser().getUserName());
mPersonBtnExit.setVisibility(View.VISIBLE);
}
//跳转到登录界面
class NickNameClick implements View.OnClickListener {
@Override
public void onClick(View v) {
Intent intent = new Intent(getContext(), LoginActivity.class);
startActivity(intent);
}
}
//设置个人中心列表
public void loadPersonInfo() {
//假数据
personInfo1 = new PersonInfo();
personInfo2 = new PersonInfo();
personInfo3 = new PersonInfo();
personInfo4 = new PersonInfo();
personInfo1.setImage(R.drawable.ic_person_info);
personInfo1.setName("个人信息");
personInfo1.setBackImg(R.drawable.ic_to_icon);
personInfo2.setImage(R.drawable.ic_person_info);
personInfo2.setName("订单列表");
personInfo2.setBackImg(R.drawable.ic_to_icon);
personInfo3.setImage(R.drawable.ic_person_info);
personInfo3.setName("修改密码");
personInfo3.setBackImg(R.drawable.ic_to_icon);
personInfo4.setImage(R.drawable.ic_person_info);
personInfo4.setName("意见反馈");
personInfo4.setBackImg(R.drawable.ic_to_icon);
ArrayList<PersonInfo> personInfos = new ArrayList<>();
personInfos.add(personInfo1);
personInfos.add(personInfo2);
personInfos.add(personInfo3);
personInfos.add(personInfo4);
SuperBase superBase = new SuperBase(personInfos.size()) {
private ImageView mImg;
private TextView mPersonInfoTitle;
private ImageView mToLogin;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_person_info, parent, false);
mImg = (ImageView) convertView.findViewById(R.id.img);
mPersonInfoTitle = (TextView) convertView.findViewById(R.id.person_info_title);
mToLogin = (ImageView) convertView.findViewById(R.id.to_login);
mImg.setBackgroundResource(personInfos.get(position).getImage());
mPersonInfoTitle.setText(personInfos.get(position).getName());
mToLogin.setBackgroundResource(personInfos.get(position).getBackImg());
return convertView;
}
};
mPersonInfo.setAdapter(superBase);
}
}
3:去登录的bean类
public class MCallBack {
/**
* {
* "msg": "操作成功",
* "code": 200,
* "token": "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjExZmU5NGNjLWE5ZmMtNDlkYS04ODZjLTA0NTUzNDVmMjg2MiJ9.mNmAngrSwiIgoINMZiEmHnNTyapn4JeLS6P8-J3t77peNJlmjnYoODfyWnxidQUxNOTaHAeIEKBcItjB9YVsXQ"
* }
* */
private String msg;
private int code;
private String token;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}
4:去登录的Activity中
public class LoginActivity extends AppCompatActivity {
private EditText mEdtUsername;
private EditText mEdtPwd;
private TextView mRegJudge;
Handler handler = new Handler(Looper.myLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case LOGIN_WHAT:
MCallBack mCallBack = (MCallBack) msg.obj;
if (mCallBack.getCode() == 200) {
Toast.makeText(LoginActivity.this, "登录成功!", Toast.LENGTH_SHORT).show();
CacheUtils.putString(LoginActivity.this, TOKEN, mCallBack.getToken());//存token
finish();
} else {
Toast.makeText(LoginActivity.this, mCallBack.getMsg(), Toast.LENGTH_SHORT).show();
}
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initView();
}
//异步请求用户登录数据
public void loginData() {
String form = "{" +
"\"username\":\""+mEdtUsername.getText().toString()+"\"," +
"\"password\":\""+mEdtPwd.getText().toString()+"\"" +
"}";
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, form);
Request request = new Request.Builder()
.url(IP + LOGIN)
.post(body)
.build();
new OkHttpClient().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String loginDataStr = response.body().string();
Log.e("TAG", "onResponse: "+loginDataStr);
MCallBack mCallBack = new Gson().fromJson(loginDataStr, MCallBack.class);
Message message = new Message();
message.what = LOGIN_WHAT;
message.obj = mCallBack;
handler.sendMessage(message);
}
});
}
public void initView() {
mEdtUsername = (EditText) findViewById(R.id.edt_username);
mEdtPwd = (EditText) findViewById(R.id.edt_pwd);
mRegJudge = (TextView) findViewById(R.id.reg_judge);
}
//点击返回
public void backPerson(View view) {
finish();
}
//点击登录
public void login(View view) {
loginData();
}
}
5:个人信息的样式表(activity_info)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.user.InfoActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="#00BCD4"
android:orientation="horizontal">
<ImageView
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:background="@drawable/ic_back" />
<TextView
android:layout_width="280dp"
android:layout_height="match_parent"
android:text="个人信息"
android:textSize="25dp"
android:textColor="@color/white"
android:gravity="center"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="180dp"
android:orientation="vertical">
<ImageView
android:id="@+id/info_head_img"
android:layout_width="70dp"
android:layout_height="70dp"
android:background="@drawable/ic_head_img"
android:layout_gravity="center"
android:layout_marginTop="30dp"/>
<TextView
android:id="@+id/info_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="未登录"
android:textSize="20dp"
android:textAlignment="center"
android:layout_marginTop="20dp"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#3F51B5"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/info_card_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="身份证:"
android:textSize="20dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="70dp"/>
<TextView
android:id="@+id/info_card_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_marginTop="8dp"
android:layout_marginLeft="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="30dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="昵 称:"
android:textSize="25dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="70dp"/>
<EditText
android:id="@+id/info_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint=""
android:background="@null"
android:layout_marginTop="8dp"
android:layout_marginLeft="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性 别:"
android:textSize="25dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="70dp"/>
<EditText
android:id="@+id/info_sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint=""
android:background="@null"
android:layout_marginTop="8dp"
android:layout_marginLeft="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电话号码:"
android:textSize="25dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="70dp"/>
<EditText
android:id="@+id/info_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint=""
android:background="@null"
android:layout_marginTop="8dp"
android:layout_marginLeft="10dp"/>
</LinearLayout>
<Button
android:layout_width="200dp"
android:layout_height="50dp"
android:text="修改信息"
android:textSize="20dp"
android:textColor="@color/white"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:background="#00BCD4"
android:onClick="modifyInfo"/>
</LinearLayout>
6:回到个人界面的Activity(InfoActivity)
public class InfoActivity extends AppCompatActivity {
private ImageView mInfoHeadImg;
private TextView mInfoUsername;
private TextView mInfoCardTitle;
private TextView mInfoCardTxt;
private EditText mInfoNickname;
private EditText mInfoSex;
private EditText mInfoPhone;
private ImageView back;
private String token;
Handler handler = new Handler(Looper.myLooper()){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case MODIFY_INFO_WHAT:
MCallBack mCallBack = (MCallBack) msg.obj;
if (mCallBack.getCode()==200){
Toast.makeText(InfoActivity.this,"修改成功!",Toast.LENGTH_SHORT).show();
finish();
}
else {
Toast.makeText(InfoActivity.this,mCallBack.getMsg(),Toast.LENGTH_SHORT).show();
}
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_info);
initView();
//显示信息
token = CacheUtils.getString(InfoActivity.this, TOKEN);//取出token
if (!token.isEmpty()){
showInfo();
}
}
//异步请求修改用户信息数据
public void modifyInfoData(){
String sexs="";
SexUtils.putSex(InfoActivity.this,mInfoSex.getText().toString(),sexs);
String form = "{"+
"\"nickName\": \""+mInfoNickname.getText().toString()+"\","+
"\"phonenumber\": \""+mInfoPhone.getText().toString()+"\","+
"\"sex\": \""+sexs+"\""+
"}";
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, form);
Request request = new Request.Builder()
.url(IP + MODIFY_INFO)
.put(body)
.addHeader("authorization", token)
.addHeader("content-type", "application/json")
.addHeader("cache-control", "no-cache")
.addHeader("postman-token", "06c9f262-35ae-af77-51e5-8d68a15de94b")
.build();
new OkHttpClient().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String modifyInfoDataStr = response.body().string();
MCallBack mCallBack = new Gson().fromJson(modifyInfoDataStr, MCallBack.class);
Message message = new Message();
message.what = MODIFY_INFO_WHAT;
message.obj = mCallBack;
handler.sendMessage(message);
}
});
}
//显示信息
public void showInfo(){
String json = CacheUtils.getString(InfoActivity.this,USER_INFO);//取出用户信息
GetPersonInfo getPersonInfo = new Gson().fromJson(json, GetPersonInfo.class);//在解析一遍
mInfoUsername.setText(getPersonInfo.getUser().getUserName());
//身份证
String cardId = getPersonInfo.getUser().getIdCard().substring(0,2)+"************"+getPersonInfo.getUser().getIdCard().substring(14);
mInfoCardTxt.setText(cardId);
mInfoNickname.setHint(getPersonInfo.getUser().getNickName());
//性别
mInfoSex.setHint(getPersonInfo.getUser().getSex());
//电话
mInfoPhone.setHint(getPersonInfo.getUser().getPhonenumber());
}
//初始化
public void initView(){
mInfoHeadImg = (ImageView) findViewById(R.id.info_head_img);
mInfoUsername = (TextView) findViewById(R.id.info_username);
mInfoCardTitle = (TextView) findViewById(R.id.info_card_title);
mInfoCardTxt = (TextView) findViewById(R.id.info_card_txt);
mInfoNickname = (EditText) findViewById(R.id.info_nickname);
mInfoSex = (EditText) findViewById(R.id.info_sex);
mInfoPhone = (EditText) findViewById(R.id.info_phone);
back = findViewById(R.id.back);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
//修改信息
public void modifyInfo(View view) {
modifyInfoData();
}
}
7:订单列表的样式表(activity_empty)
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".activity.EmptyActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/back"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@drawable/ic_back_s"
android:layout_gravity="center"
android:layout_marginLeft="20dp"/>
<TextView
android:id="@+id/title"
android:layout_width="280dp"
android:layout_height="match_parent"
android:text="title"
android:textSize="30dp"
android:gravity="center"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#c7c7c7"/>
<TextView
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Content"
android:gravity="center"
android:textSize="30dp"/>
</LinearLayout>
8:回到订单列表(EmptyActivity)
public class EmptyActivity extends AppCompatActivity {
private ImageView mBack;
private TextView mContent;
private TextView mTitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_empty);
initView();
String values = getIntent().getStringExtra(VALUES);//取值
mContent.setText(values);
mTitle.setText(values);
}
public void initView(){
mBack = (ImageView) findViewById(R.id.back);
mContent = (TextView) findViewById(R.id.content);
mTitle = (TextView) findViewById(R.id.title);
mBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
9:修改密码的样式表(activity_modiy_pwd)
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".activity.user.ModifyPwdActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="#00BCD4"
android:orientation="horizontal">
<ImageView
android:id="@+id/back"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@drawable/ic_back"
android:layout_gravity="center"
android:layout_marginLeft="20dp"/>
<TextView
android:layout_width="280dp"
android:layout_height="match_parent"
android:text="设置密码"
android:textSize="30dp"
android:textColor="@color/white"
android:gravity="center"/>
</LinearLayout>
<EditText
android:id="@+id/new_pwd"
android:layout_width="250dp"
android:layout_height="50dp"
android:background="@drawable/bg_login"
android:hint="请输入新密码"
android:textAlignment="center"
android:textColor="@color/black"
android:layout_gravity="center"
android:layout_marginTop="100dp"
android:inputType="textPassword"/>
<EditText
android:id="@+id/old_pwd"
android:layout_width="250dp"
android:layout_height="50dp"
android:background="@drawable/bg_login"
android:hint="请输入旧密码"
android:textAlignment="center"
android:textColor="@color/black"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:inputType="textPassword"/>
<Button
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginTop="80dp"
android:background="#00BCD4"
android:onClick="modifyPwd"
android:text="确 定"
android:textColor="@color/white"
android:textSize="20dp" />
</LinearLayout>
10:回到修改页面的Activity中(ModifyPwdActivity)
public class ModifyPwdActivity extends AppCompatActivity {
private ImageView mBack;
private EditText mNewPwd;
private EditText mOldPwd;
private String token;
Handler handler = new Handler(Looper.myLooper()){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case MODIFY_PWD_WHAT:
MCallBack mCallBack = (MCallBack) msg.obj;
if (mCallBack.getCode()==200){
Toast.makeText(ModifyPwdActivity.this,"修改成功!请重新登录",Toast.LENGTH_SHORT).show();
CacheUtils.clearString(ModifyPwdActivity.this,TOKEN);
CacheUtils.clearString(ModifyPwdActivity.this,USER_INFO);
Intent intent = new Intent(ModifyPwdActivity.this,LoginActivity.class);
startActivity(intent);
}
else {
Toast.makeText(ModifyPwdActivity.this,mCallBack.getMsg(),Toast.LENGTH_SHORT).show();
}
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_modiy_pwd);
initView();
}
public void initView(){
mBack = (ImageView) findViewById(R.id.back);
mNewPwd = (EditText) findViewById(R.id.new_pwd);
mOldPwd = (EditText) findViewById(R.id.old_pwd);
mBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
//异步请求修改密码数据
public void modifyPwdData(){
String form = "{"+
"\"newPassword\": \""+mNewPwd.getText().toString()+"\","+
"\"oldPassword\": \""+mOldPwd.getText().toString()+"\""+
"}";
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, form);
Request request = new Request.Builder()
.url(IP + MODIFY_PWD)
.put(body)
.addHeader("authorization", token)
.addHeader("content-type", "application/json")
.addHeader("cache-control", "no-cache")
.addHeader("postman-token", "3464858b-4b35-2bd6-5b78-c5c81b6f302e")
.build();
new OkHttpClient().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String modifyPwdDataStr = response.body().string();
MCallBack mCallBack = new Gson().fromJson(modifyPwdDataStr, MCallBack.class);
Message message = new Message();
message.what = MODIFY_PWD_WHAT;
message.obj = mCallBack;
handler.sendMessage(message);
}
});
}
//修改密码
public void modifyPwd(View view) {
//获取token
token = CacheUtils.getString(ModifyPwdActivity.this, TOKEN);
if (!token.isEmpty()){
modifyPwdData();
}
}
}
11:意见反馈样式表(activity_suggestion)
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".activity.user.SuggestionActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="#00BCD4"
android:orientation="horizontal">
<ImageView
android:id="@+id/back"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@drawable/ic_back"
android:layout_gravity="center"
android:layout_marginLeft="20dp"/>
<TextView
android:layout_width="280dp"
android:layout_height="match_parent"
android:text="意见反馈"
android:textSize="30dp"
android:textColor="@color/white"
android:gravity="center"/>
</LinearLayout>
<EditText
android:id="@+id/edt_suggestion"
android:layout_width="match_parent"
android:layout_height="200dp"
android:maxLength="150"
android:hint="说说你想说的" />
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_marginLeft="230dp"
android:textColor="@color/white"
android:text="提 交"
android:background="#00BCD4"
android:textSize="20dp"
android:layout_marginTop="20dp"
android:onClick="submit"/>
</LinearLayout>
12:意见反馈(SuggestionActivity)
public class SuggestionActivity extends AppCompatActivity {
private ImageView mBack;
private EditText mEdtSuggestion;
private String token;
Handler handler = new Handler(Looper.myLooper()){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case SUGGESTION_WHAT:
MCallBack mCallBack = (MCallBack) msg.obj;
if (mCallBack.getCode()==200){
Toast.makeText(SuggestionActivity.this,"提交成功!",Toast.LENGTH_SHORT).show();
mEdtSuggestion.setText("");
}
else {
Toast.makeText(SuggestionActivity.this,mCallBack.getMsg(),Toast.LENGTH_SHORT).show();
}
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_suggestion);
initView();
}
//异步请求反馈数据
public void suggestionData(){
String form = "{\n" +
"\"content\": \""+mEdtSuggestion.getText().toString()+"\",\n" +
"\"title\": \"反馈内容\"\n" +
"}";
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, form);
Request request = new Request.Builder()
.url(IP + SUGGESTION)
.post(body)
.addHeader("authorization", token)
.addHeader("content-type", "application/json")
.addHeader("cache-control", "no-cache")
.addHeader("postman-token", "55d63e36-1045-9069-6761-26cfe7e5fc45")
.build();
new OkHttpClient().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String suggestionDataStr = response.body().string();
MCallBack mCallBack = new Gson().fromJson(suggestionDataStr, MCallBack.class);
Message message = new Message();
message.what = SUGGESTION_WHAT;
message.obj = mCallBack;
handler.sendMessage(message);
}
});
}
public void initView(){
mBack = (ImageView) findViewById(R.id.back);
mEdtSuggestion = (EditText) findViewById(R.id.edt_suggestion);
mBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
//提交反馈意见
public void submit(View view) {
token = CacheUtils.getString(SuggestionActivity.this, TOKEN);
if (!token.isEmpty()){
suggestionData();
}
}
}