布局:
<ImageView
android:layout_width="100dp"
android:layout_height="70dp"
android:layout_gravity="center"
android:layout_margin="20dp"
android:src="@drawable/touxiang" />
<TextView
android:id="@+id/mydata"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:drawableRight="@drawable/more"
android:gravity="center_vertical"
android:padding="10dp"
android:text="个人信息"
android:textSize="20sp" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="20dp"
android:background="@color/baise" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/more"
android:gravity="center_vertical"
android:padding="10dp"
android:text="订单列表"
android:textSize="20sp" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="20dp"
android:background="@color/baise" />
<TextView
android:id="@+id/Change_pawd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/more"
android:gravity="center_vertical"
android:padding="10dp"
android:text="修改密码"
android:textSize="20sp" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="20dp"
android:background="@color/baise" />
<TextView
android:id="@+id/fankui"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableRight="@drawable/more"
android:gravity="center_vertical"
android:padding="10dp"
android:text="意见反馈"
android:textSize="20sp" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="20dp"
android:background="@color/baise" />
<Button
android:id="@+id/exit_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/btn"
android:text="退出登录" />
java代码:
package com.example.lianxi.Fragment;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.example.lianxi.ChangePawd;
import com.example.lianxi.FeedBack;
import com.example.lianxi.MyData;
import com.example.lianxi.R;
import org.json.JSONObject;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class MyFragment extends Fragment {
View view;
String token;
SharedPreferences sp;
OkHttpClient okHttpClient;
Handler handler;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.my_fragment, container, false);
sp = getActivity().getSharedPreferences("Myshuju", Context.MODE_PRIVATE);
okHttpClient = new OkHttpClient.Builder().build();
handler = new Handler(Looper.getMainLooper());
token = sp.getString("token","");
//跳转
tiaozhuan();
return view;
}
private void tiaozhuan() {
//修改密码
view.findViewById(R.id.Change_pawd).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(), ChangePawd.class));
}
});
//个人信息
view.findViewById(R.id.mydata).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(), MyData.class));
}
});
//退出登录
view.findViewById(R.id.exit_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().finish();
}
});
//意见反馈
view.findViewById(R.id.fankui).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(), FeedBack.class));
}
});
}
}
1、展示个人信息和修改个人信息:
个人信息封装:不需要用List
package com.example.xiamingliang.MyInfoData;
public class MyInfoData {
MyInfoBean user;
public MyInfoBean getUser() {
return user;
}
public void setUser(MyInfoBean user) {
this.user = user;
}
}
布局
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="头像"
android:padding="10dp"/>
<EditText
android:layout_marginRight="20dp"
android:layout_width="50dp"
android:background="@null"
android:drawableRight="@drawable/touxiang"
android:layout_height="30dp"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="性别"
android:padding="10dp"/>
<RadioGroup
android:id="@+id/my_radio"
android:layout_marginRight="20dp"
android:layout_gravity="center_vertical"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/man"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="男"/>
<RadioButton
android:id="@+id/woman"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="女"/>
</RadioGroup>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="手机号"
android:padding="10dp"/>
<EditText
android:id="@+id/my_tel"
android:layout_marginRight="20dp"
android:text="null"
android:layout_width="wrap_content"
android:background="@null"
android:layout_height="wrap_content"/>
</LinearLayout>
<Button
android:id="@+id/xiugai_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/btn"
android:layout_margin="10dp"
android:text="修改"/>
核心代码:
package com.example.lianxi;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.example.lianxi.Fragment.MyFragment;
import com.example.lianxi.MyShuju.MyInfoData;
import com.google.gson.Gson;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class MyData extends AppCompatActivity {
OkHttpClient okHttpClient;
Handler handler;
EditText tel;
String token;
SharedPreferences sp;
RadioGroup radioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_data);
sp = getSharedPreferences("Myshuju", Context.MODE_PRIVATE);
okHttpClient = new OkHttpClient.Builder().build();
handler = new Handler(Looper.getMainLooper());
token = sp.getString("token","");
radioGroup = findViewById(R.id.my_radio);
tel = findViewById(R.id.my_tel);
showmyxinxi();
}
private void showmyxinxi() {
Request request = new Request.Builder()
.url("")
.addHeader("Authorization",token)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String data = response.body().string();
handler.post(new Runnable() {
@Override
public void run() {
MyInfoData myInfoData = new Gson().fromJson(data,MyInfoData.class);
tel.setText(myInfoData.getUser().getPhonenumber());
String sex = myInfoData.getUser().getSex();
Map map = new HashMap<>();
map.put("男","0");
map.put("女","1");
String s = String.valueOf(map.get(sex));
if (s.equals("1")){
radioGroup.check(R.id.woman);
}else {
radioGroup.check(R.id.man);
}
findViewById(R.id.xiugai_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ChangeMyshuju();
}
});
}
});
}
});
}
private void ChangeMyshuju() {
String gettel = tel.getText().toString();
RadioButton radioButton = findViewById(radioGroup.getCheckedRadioButtonId());
String getsex = radioButton.getText().toString();
Map<String,String> data = new HashMap<>();
data.put("phonenumber",gettel);
data.put("sex",getsex);
String json = new Gson().toJson(data);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"),json);
Request request = new Request.Builder()
.put(requestBody)
.addHeader("Authorization",token)
.url("")
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String data = response.body().string();
handler.post(new Runnable() {
@Override
public void run() {
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(data);
} catch (JSONException e) {
e.printStackTrace();
}
if (jsonObject.optString("code").equals("200")){
startActivity(new Intent(MyData.this, MyFragment.class));
Toast.makeText(MyData.this, "修改成功!", Toast.LENGTH_SHORT).show();
}
}
});
}
});
}
}
2、反馈列表:
布局:
<TextView
android:text="反馈"
android:background="@color/blue"
style="@style/top_text"/>
<EditText
android:id="@+id/fankui_title"
android:background="@drawable/black_line"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:hint="标题"/>
<EditText
android:id="@+id/fankui_body"
android:background="@drawable/black_line"
android:layout_margin="10dp"
android:padding="5dp"
android:layout_width="match_parent"
android:layout_height="200dp"
android:hint="我的反馈"
android:gravity="top"/>
<Button
android:id="@+id/commit_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/btn"
android:layout_margin="10dp"
android:text="提交"/>
<Button
android:id="@+id/fankui_listbtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/btn"
android:layout_margin="10dp"
android:text="反馈列表"/>
核心代码:
package com.example.lianxi;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import com.example.lianxi.BaseInfo.Connect;
import com.example.lianxi.FankuiData.FankuiBean;
import com.example.lianxi.FankuiData.FankuiData;
import com.google.gson.Gson;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import okhttp3.Cache;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class FeedBack extends AppCompatActivity {
EditText title,body;
Button commit,list;
OkHttpClient okHttpClient;
Handler handler;
String token;
SharedPreferences sp;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_feed_back);
title = findViewById(R.id.fankui_title);
body = findViewById(R.id.fankui_body);
commit = findViewById(R.id.commit_btn);
list = findViewById(R.id.fankui_listbtn);
listView = findViewById(R.id.fankui_list);
okHttpClient = new OkHttpClient.Builder().build();
handler = new Handler(Looper.getMainLooper());
sp = getSharedPreferences("Myshuju",MODE_PRIVATE);
token = sp.getString("token","");
//提交反馈信息
commit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String gettitle = title.getText().toString();
String getbody = body.getText().toString();
if (gettitle.isEmpty()){
Toast.makeText(FeedBack.this, "请写入反馈标题", Toast.LENGTH_SHORT).show();
}else if (getbody.isEmpty()){
Toast.makeText(FeedBack.this, "请写入反馈内容", Toast.LENGTH_SHORT).show();
}else {
Map<String,String> data = new HashMap<>();
data.put("title",gettitle);
data.put("content",getbody);
String json = new Gson().toJson(data);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"),json);
Request request = new Request.Builder()
.addHeader("Authorization",token)
.post(requestBody)
.url(Connect.TijiaoFankui)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String data = response.body().string();
handler.post(new Runnable() {
@Override
public void run() {
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(data);
} catch (JSONException e) {
e.printStackTrace();
}
if (jsonObject.optString("code").equals("200")){
Toast.makeText(FeedBack.this, "提交成功!", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(FeedBack.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
}
}
});
}
});
}
}
});
//查看意见反馈列表
list.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(FeedBack.this,FeedBack_List.class));
}
});
}
}
查看反馈列表:
布局:
<TextView
android:background="@color/blue"
android:text="反馈列表"
style="@style/top_text"/>
<ListView
android:id="@+id/fankui_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
代码:
package com.example.lianxi;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.lianxi.BaseInfo.Connect;
import com.example.lianxi.FankuiData.FankuiBean;
import com.example.lianxi.FankuiData.FankuiData;
import com.example.lianxi.ListNews.Const;
import com.google.gson.Gson;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class FeedBack_List extends AppCompatActivity {
OkHttpClient okHttpClient;
Handler handler;
ListView listView;
String token;
SharedPreferences sp;
ArrayList<FankuiBean> fankui_alldata = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_feed_back_list);
okHttpClient = new OkHttpClient.Builder().build();
handler = new Handler(Looper.getMainLooper());
listView = findViewById(R.id.fankui_list);
sp = getSharedPreferences("Myshuju",MODE_PRIVATE);
token = sp.getString("token","");
Request request = new Request.Builder()
.addHeader("Authorization",token)
.url(Connect.SeeFankuiList)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String data=response.body().string();
Log.i("反馈信息", data);
handler.post(new Runnable() {
@Override
public void run() {
FankuiData fankuiData = new Gson().fromJson(data,FankuiData.class);
for (int i=0;i<fankuiData.getRows().size();i++){
fankui_alldata.add(fankuiData.getRows().get(i));
}
if (response.isSuccessful()&&response!=null){
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(data);
} catch (JSONException e) {
e.printStackTrace();
}
if (jsonObject.optString("code").equals("200")){
PutListView(fankui_alldata);
}else {
Toast.makeText(FeedBack_List.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
}
}
}
});
}
});
}
private void PutListView(ArrayList<FankuiBean> fankuiBeanArrayList) {
listView.setAdapter(new MyAdatper(fankuiBeanArrayList));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Const.fankuidetial = fankui_alldata.get(position);
startActivity(new Intent(FeedBack_List.this,FanKuiDetial.class));
}
});
}
private class MyAdatper extends BaseAdapter {
ArrayList<FankuiBean> list;
public MyAdatper(ArrayList<FankuiBean> list) {
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(FeedBack_List.this,R.layout.fankuilist,null);
TextView title,body;
title = view.findViewById(R.id.fankui_list_title);
body = view.findViewById(R.id.fankui_list_body);
title.setText(fankui_alldata.get(position).getTitle());
body.setText(fankui_alldata.get(position).getContent());
return view;
}
}
}