作者 朱振飞
... ... @@ -7,6 +7,7 @@ import com.google.gson.GsonBuilder;
import com.yinhebairong.clasmanage.Config;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
... ... @@ -46,7 +47,10 @@ public class ApiStore {
Gson gson = new GsonBuilder().setDateFormat("yyyy.MM.dd HH:mm:ss").create();
OkHttpClient.Builder builder = new OkHttpClient().newBuilder()
OkHttpClient.Builder builder = new OkHttpClient().newBuilder().
connectTimeout(60, TimeUnit.SECONDS).
readTimeout(60, TimeUnit.SECONDS).
writeTimeout(60, TimeUnit.SECONDS)
.addInterceptor(new Interceptor() {
@Override
public Response intercept(@NonNull Chain chain) throws IOException {
... ...
... ... @@ -79,7 +79,7 @@ public class MainActivity extends BaseActivity {
if (Config.Type.equals("2")){
mainRad2.setText("学生评价");
}else {
mainRad2.setText("我的评价");
mainRad2.setText("我的孩子");
}
MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager());
pager.setOffscreenPageLimit(2); // 设置ViewPage缓存界面数
... ...
... ... @@ -22,6 +22,7 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
... ... @@ -128,8 +129,8 @@ public class StuEvaFragment_per extends BaseFragment {
// 红 黄
private final int[] colors = new int[]{
Color.rgb(255, 84, 85),
Color.rgb(255, 171, 19),
Color.rgb(255,171,19),
Color.rgb(73,176,255),
};
//蓝 绿
private final int[] colorsTwo = new int[]{
... ... @@ -159,8 +160,6 @@ public class StuEvaFragment_per extends BaseFragment {
/* 项目数据实例化 */
private void init_sj() {
name.setText(Config.Student_name);
// M.Glide(studentInfoListBean + "", cirTx, activity);
tb_a.setText(Config.Student_name + "日常表现折线图");
tb_b.setText(Config.Student_name + "日常表现详细得分图");
... ... @@ -168,10 +167,8 @@ public class StuEvaFragment_per extends BaseFragment {
setRv(pjfx_sj_rv, 1, 0, 0);
adapter_sj = new pjfxAdapter_sj(R.layout.item_pjfx_sj, grdp_list);
pjfx_sj_rv.setAdapter(adapter_sj);
/* item */
adapter_sj.setOnItemChildClickListener((adapter, view, position) -> {
});
}
... ... @@ -331,7 +328,7 @@ public class StuEvaFragment_per extends BaseFragment {
// Linechar click show popwindow
private void charListenerPop(float x, float y, Entry entry, int type) {
private void charListenerPop(float x, float y,Entry entry ,int type) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.pop_char_listener, null);
TextView week = view.findViewById(R.id.pop_char_week);
TextView culwee = view.findViewById(R.id.pop_char_cul_week);
... ... @@ -340,6 +337,7 @@ public class StuEvaFragment_per extends BaseFragment {
TextView lastweek_val = view.findViewById(R.id.pop_char_last_week_value);
View weeK_view = view.findViewById(R.id.weeK_view);
View last_week = view.findViewById(R.id.last_week);
LinearLayout pop_back = view.findViewById(R.id.pop_back);
int iEnty = (int) entry.getX();
LinearLayout layoutX = view.findViewById(R.id.pop_char_lis_layoutB);
... ... @@ -349,40 +347,86 @@ public class StuEvaFragment_per extends BaseFragment {
week.setVisibility(View.VISIBLE);
break;
case 1: // Historgram
week.setVisibility(View.GONE);
week.setText(xaxis1.get(iEnty)+"");
week.setVisibility(View.VISIBLE);
break;
}
switch (level.getKey()) {
case 1: // 周
layoutX.setVisibility(View.VISIBLE);
culwee.setText(type == 0 ? "本周" : "学生");
lastweek.setText(type == 0 ? "上周" : "班级");
if (type == 0) {
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_ff5455));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_22_ffab13));
} else {
culwee.setText(type == 0 ? "本周" : "学生得分");
lastweek.setText(type == 0 ? "上周" : "班级平均得分");
if (type==0){
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_ffab13));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_40b0ff));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_ff5455));
}else {
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_49b0ff));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_b2ebd1));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_49b0ff));
}
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
lastweek_val.setText(type == 0 ? last.get(iEnty) + "" : classX.get(iEnty) + "");
break;
case 2: // 月
layoutX.setVisibility(View.GONE);
culwee.setText("本月");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
if (type==0){
layoutX.setVisibility(View.GONE);
culwee.setText("本月");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_ffab13));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_40b0ff));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_ff5455));
}else {
layoutX.setVisibility(View.VISIBLE);
culwee.setText("学生得分");
lastweek.setText("班级平均得分");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_49b0ff));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_b2ebd1));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_49b0ff));
culweek_val.setText(student.get(iEnty) + "");
lastweek_val.setText(classX.get(iEnty) + "");
}
break;
case 3: // 学期
layoutX.setVisibility(View.GONE);
culwee.setText("本学期");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
if (type==0){
layoutX.setVisibility(View.GONE);
culwee.setText("本学期");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_ffab13));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_40b0ff));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_ff5455));
}else {
layoutX.setVisibility(View.VISIBLE);
culwee.setText("学生得分");
lastweek.setText("班级平均得分");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_49b0ff));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_b2ebd1));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_49b0ff));
culweek_val.setText(student.get(iEnty) + "");
lastweek_val.setText(classX.get(iEnty) + "");
}
break;
case 4: // 学年
layoutX.setVisibility(View.GONE);
culwee.setText("本学年");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
if (type==0){
layoutX.setVisibility(View.GONE);
culwee.setText("本学年");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_ffab13));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_40b0ff));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_ff5455));
}else{
layoutX.setVisibility(View.VISIBLE);
culwee.setText("学生得分");
lastweek.setText("班级平均得分");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_49b0ff));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_b2ebd1));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_49b0ff));
culweek_val.setText(student.get(iEnty) + "");
lastweek_val.setText(classX.get(iEnty) + "");
}
break;
}
... ... @@ -393,9 +437,9 @@ public class StuEvaFragment_per extends BaseFragment {
pop.setAnimationStyle(R.style.AnimTopMiddle);
if (type == 0) {
pop.showAsDropDown(tb_a, (int) x, (int) y);
pop.showAsDropDown(tb_a,(int)x,(int)y);
} else {
pop.showAsDropDown(tb_b, (int) x, (int) y);
pop.showAsDropDown(tb_b,(int)x,(int)y);
}
}
... ... @@ -464,20 +508,32 @@ public class StuEvaFragment_per extends BaseFragment {
// 重置
cz.setOnClickListener(v -> { // 重置之后将所有数据添加
requestId = "";
for (int i = 0; i < pop_eva_item.size(); i++) {
List<AllevaitemsEntity.DataBean.ChildBean> child = pop_eva_item.get(i).getChild();
for (int j = 0; j < child.size(); j++) {
if (child.get(i).isChecked()){
perQuest.add(child.get(j).getId());
requestId = requestId + "," + child.get(j).getId();
pop_eva_item.clear();
perQuest.clear();
Api().all_eva_items(Config.Token, Config.ClassId).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(data -> {
if (data.getCode() == M.success) {
List<AllevaitemsEntity.DataBean> sj = data.getData();
pop_eva_item.addAll(sj);
for (int i = 0; i < pop_eva_item.size(); i++) {
List<AllevaitemsEntity.DataBean.ChildBean> cd = pop_eva_item.get(i).getChild();
for (int j = 0; j < cd.size(); j++) {
if (cd.get(j).isChecked()){
perQuest.add(cd.get(j).getId());
if (requestId.equals("")) {
requestId = cd.get(j).getId()+ "";
} else {
requestId = requestId + "," + cd.get(j).getId();
}
}
}
}
tb_data(requestId, Config.id, level.getKey() + "", requestValue);
evaitemsAdapter.setNewData(pop_eva_item);
} else if (data.getCode() == 401) {
ApiError.refreshToken();
}
}
requestId.substring(0, 1);
M.log("requestId", requestId + "");
tb_data(requestId, Config.id, level.getKey() + "", requestValue);
evaitemsAdapter.notifyDataSetChanged();
pop.dismiss();
});
// pop.dismiss();
});
// 确定
... ... @@ -491,13 +547,14 @@ public class StuEvaFragment_per extends BaseFragment {
}
}
M.log("requestIdxxx", "requestId" + requestId + " level.getKey()" + level.getKey() + " requestValue" + requestValue);
tb_data(requestId, Config.id, level.getKey() + "", requestValue);
tb_data(requestId,Config.id, level.getKey() + "", requestValue);
pop.dismiss();
});
}
public int getStatusBarHeight() {
Resources resources = getActivity().getResources();
int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android");
... ... @@ -507,37 +564,41 @@ public class StuEvaFragment_per extends BaseFragment {
// 日期弹窗
// --------------------------------------------------- 日期下拉框 --------------------------------------------------------------------
View dropview;
PopupWindow dropPop;
RecyclerView dropRv;
private void showDrop() {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.pop_time_choose, null);
dropview = LayoutInflater.from(getActivity()).inflate(R.layout.pop_time_choose, null);
// 时间选择器 - 月
DatePickerView picker = view.findViewById(R.id.time_choose_picker);
TextView timeChooseHfmr = view.findViewById(R.id.time_choose_hfmr);
TextView timeChooseSure = view.findViewById(R.id.time_choose_sure); // 确定
DatePickerView picker = dropview.findViewById(R.id.time_choose_picker);
TextView timeChooseHfmr = dropview.findViewById(R.id.time_choose_hfmr);
TextView timeChooseSure = dropview.findViewById(R.id.time_choose_sure); // 确定
// left 选 周 , 月 , 学期 , 学年
ListView lis = view.findViewById(R.id.grid_two);
ListView lis = dropview.findViewById(R.id.grid_two);
listAdapter listAdapter = new listAdapter(listArr);
lis.setAdapter(listAdapter);
// 周
RecyclerView rv = view.findViewById(R.id.time_choose_rv);
setDate(rv, 0, 3, 0); // 初始化
dropRv = dropview.findViewById(R.id.time_choose_rv);
setRv(dropRv, 0, 0, 3);
setDate(); // 初始化
// 学年
WheelItemView wheel3 = view.findViewById(R.id.wheelitem3);
WheelItemView wheel3 = dropview.findViewById(R.id.wheelitem3);
// 学期
LinearLayout wheel_linear = view.findViewById(R.id.poptime_choose_wheel);
WheelItemView wheel1 = view.findViewById(R.id.wheelitem1);
WheelItemView wheel2 = view.findViewById(R.id.wheelitem2);
final PopupWindow popupWindow = new PopupWindow(view, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT - line4.getBottom());
popupWindow.setOutsideTouchable(true);
popupWindow.setTouchable(true);
popupWindow.setFocusable(true);
popupWindow.setBackgroundDrawable(getResources().getDrawable(R.color.color_tm));
popupWindow.setAnimationStyle(R.style.AnimTopMiddle);
popupWindow.showAsDropDown(line4);
LinearLayout wheel_linear = dropview.findViewById(R.id.poptime_choose_wheel);
WheelItemView wheel1 = dropview.findViewById(R.id.wheelitem1);
WheelItemView wheel2 = dropview.findViewById(R.id.wheelitem2);
dropPop = new PopupWindow(dropview, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT - line4.getBottom());
dropPop.setOutsideTouchable(true);
dropPop.setTouchable(true);
dropPop.setFocusable(true);
dropPop.setBackgroundDrawable(getResources().getDrawable(R.color.color_tm));
dropPop.setAnimationStyle(R.style.AnimTopMiddle);
dropPop.showAsDropDown(line4);
// 月默认时间
int[] month = level.getMonth();
... ... @@ -556,26 +617,27 @@ public class StuEvaFragment_per extends BaseFragment {
switch (level.getKey()) {
case 1: // 周
level.setKey(1);
rv.setVisibility(View.VISIBLE);
dropRv.setVisibility(View.VISIBLE);
wheel_linear.setVisibility(View.GONE);
picker.setVisibility(View.GONE);
setDate(rv, 0, 3, 1); // level.getKey()
setDate(); // level.getKey()
break;
case 2: // 月
level.setKey(2);
picker.setVisibility(View.VISIBLE);
wheel_linear.setVisibility(View.GONE);
rv.setVisibility(View.GONE);
dropRv.setVisibility(View.GONE);
wheel3.setVisibility(View.GONE);
if (level.getMonth() != null) {
picker.setDate(level.getMonth()[0], level.getMonth()[1]); // 数据
}
break;
case 3: // 学期
level.setKey(3);
wheel_linear.setVisibility(View.VISIBLE);
rv.setVisibility(View.GONE);
dropRv.setVisibility(View.GONE);
picker.setVisibility(View.GONE);
wheel3.setVisibility(View.GONE);
... ... @@ -586,11 +648,12 @@ public class StuEvaFragment_per extends BaseFragment {
} else {
setXqData(wheel1, wheel2, 0);
}
break;
case 4: // 学年
level.setKey(4);
wheel_linear.setVisibility(View.GONE);
rv.setVisibility(View.GONE);
dropRv.setVisibility(View.GONE);
picker.setVisibility(View.GONE);
wheel3.setVisibility(View.VISIBLE);
setXnData(wheel3);
... ... @@ -614,17 +677,17 @@ public class StuEvaFragment_per extends BaseFragment {
timeChooseSure.setClickable(true);
level.setKey(1);
wheel_linear.setVisibility(View.GONE);
rv.setVisibility(View.VISIBLE);
dropRv.setVisibility(View.VISIBLE);
picker.setVisibility(View.GONE);
wheel3.setVisibility(View.GONE);
setDate(rv, 0, 3, 1); // 最后一位是 判断什么标记
setDate(); // 最后一位是 判断什么标记
break;
case 1: // 月
level.setKey(2);
picker.setVisibility(View.VISIBLE);
rv.setVisibility(View.GONE);
dropRv.setVisibility(View.GONE);
wheel3.setVisibility(View.GONE);
wheel_linear.setVisibility(View.GONE);
... ... @@ -645,11 +708,19 @@ public class StuEvaFragment_per extends BaseFragment {
timeChooseSure.setClickable(true);
level.setKey(3);
wheel_linear.setVisibility(View.VISIBLE);
rv.setVisibility(View.GONE);
dropRv.setVisibility(View.GONE);
picker.setVisibility(View.GONE);
wheel3.setVisibility(View.GONE);
setXqData(wheel1, wheel2, 0);
if (level.getSchYear() != null) {
setXqData(wheel1, wheel2, level.getSchYear()[0]);
wheel1.setSelectedIndex(level.getSchYear()[0]);
wheel2.setSelectedIndex(level.getSchYear()[1]);
M.log("getSchYear", level.getSchYear()[0] + "--" + level.getSchYear()[1]);
} else {
setXqData(wheel1, wheel2, 0);
}
break;
case 3: // 学年
... ... @@ -657,7 +728,7 @@ public class StuEvaFragment_per extends BaseFragment {
timeChooseSure.setClickable(true);
level.setKey(4);
wheel_linear.setVisibility(View.GONE);
rv.setVisibility(View.GONE);
dropRv.setVisibility(View.GONE);
picker.setVisibility(View.GONE);
wheel3.setVisibility(View.VISIBLE);
... ... @@ -669,7 +740,6 @@ public class StuEvaFragment_per extends BaseFragment {
}
});
// 月的时间选择器
picker.addOnSelectedChangingListener((oldValue, newValue) -> { // 0 - > 年 | 1 - > 月
... ... @@ -687,7 +757,8 @@ public class StuEvaFragment_per extends BaseFragment {
// 学期 left
wheel1.setOnSelectedListener(((context, selectedIndex) -> {
level.setSchYear(new int[]{selectedIndex, 0});
level.setSchYear(new int[]{selectedIndex, level.getSchYear()[1]});
setXqData(wheel1, wheel2, level.getSchYear()[selectedIndex]);
}));
... ... @@ -710,68 +781,36 @@ public class StuEvaFragment_per extends BaseFragment {
timeChooseHfmr.setOnClickListener(v -> {
switch (level.getKey()) {
case 1: // 周
setDate(rv, 0, 3, 0); // level.getKey()
level.setMonth(null);
level.setSchYear(null); // 学期标记
level.setXnYear(""); // 学年标记
date();
setDate(rv, 0, 3, 0); // level.getKey()
// if (level.getKey() == 0 || level.getValue() == 1000) {
// tb_data(requestId, Integer.valueOf(getIntent().getStringExtra(M.StuId)), "", "");
// } else {
// requestValue = items.get(level.getValue()).getValue() + "";
// tb_data(requestId, Integer.valueOf(getIntent().getStringExtra(M.StuId)), level.getKey() + "", requestValue);
// }
// changeUI(true, "本周", "上周", "第" + arr.get(0).get(level.getValue()).getValue() + "周", "本周得分", "上周得分");
date(0);
break;
case 2: // 月
picker.setDate(year, monthx); // 系统时间设置数据
int mothV = (year > picker.getSelectDate()[0]) || (year == picker.getSelectDate()[0] && monthx >= picker.getSelectDate()[1]) == true ? 0 : 1;
if (mothV == 0) {
// 不是月的设置空值
level.setValue(-1);
level.setSchYear(null);
level.setXnYear(""); // 学年标记
ChA = 1000; // 清理周 , 学期 , 学年标记
// tb_data(requestId, Integer.valueOf(getIntent().getStringExtra(M.StuId)), level.getKey() + "", picker.getSelectDate()[0] + "-" + picker.getSelectDate()[1]);
// changeUI(false, "本月", "某月", picker.getSelectDate()[0] + "-" + picker.getSelectDate()[1], "本月得分", "上月得分"); // 这里第二个参数无用
// popupWindow.dismiss();
} else {
M.toast(getActivity(), "操作无效");
}
break;
case 3: // 学期
// 将标记变为初始
level.setSchYear(new int[]{0, 0});
setXqData(wheel1, wheel2, level.getSchYear()[0]);
date(1);
if (level.getSchYear() != null) {
setXqData(wheel1, wheel2, level.getSchYear()[0]);
} else {
setXqData(wheel1, wheel2, 0);
}
wheel1.setSelectedIndex(level.getSchYear()[0]);
wheel2.setSelectedIndex(level.getSchYear()[1]);
// 下面是默认选中位置
for (int i = 0; i < xnList.size(); i++) {
if (xnList.get(i).getChecked() == 1) {
wheel1.setSelectedIndex(i);
}
List<ChooseXnLevel.ItemBeans> itemBeans = xnList.get(i).getItemBeans();
for (int j = 0; j < itemBeans.size(); j++) {
if (itemBeans.get(j).getChecked() == 1) {
wheel2.setSelectedIndex(j);
}
}
}
level.setValue(-1);
level.setMonth(null);
level.setXnYear(""); // 学年标记
ChA = 1000; // 清理周标记
// popupWindow.dismiss();
break;
case 4: // 学年
// 恢复初始值
level.setXnYear(0 + "");
wheel3.setSelectedIndex(0);
level.setXnVal(0); // 下次进来之后选择器得默认值
level.setValue(-1);
level.setMonth(null);
ChA = 1000; // 清理周
level.setSchYear(null); // 学期
// popupWindow.dismiss();
break;
}
... ... @@ -779,15 +818,14 @@ public class StuEvaFragment_per extends BaseFragment {
// 确定
timeChooseSure.setOnClickListener(v -> {
Toast.makeText(getActivity(), level.getKey()+"", Toast.LENGTH_SHORT).show();
if (level.getKey() != 0 || !(level.getValue() + "").equals("") || level.getMonth() != null) {
switch (level.getKey()) {
case 1: // 周
// 不是周或者学期的设置空值
level.setMonth(null);
level.setSchYear(null); // 学期标记
level.setXnYear(""); // 学年标记
// level.setMonth(null);
// level.setSchYear(null); // 学期标记
// level.setXnYear(""); // 学年标记
if (level.getKey() == 0 || level.getValue() == 1000) {
tb_data(requestId, Config.id, "", "");
... ... @@ -797,34 +835,28 @@ public class StuEvaFragment_per extends BaseFragment {
}
changeUI(true, "本周", "上周", "第" + arr.get(0).get(level.getValue()).getValue() + "周", "本周得分", "上周得分");
popupWindow.dismiss();
dropPop.dismiss();
break;
case 2: // 月
int mothV = (year > picker.getSelectDate()[0]) || (year == picker.getSelectDate()[0] && monthx >= picker.getSelectDate()[1]) == true ? 0 : 1;
if (mothV == 0) {
// 不是月的设置空值
level.setValue(-1);
level.setSchYear(null);
level.setXnYear(""); // 学年标记
ChA = 1000; // 清理周 , 学期 , 学年标记
// level.setValue(-1);
// level.setSchYear(null);
// level.setXnYear(""); // 学年标记
requestValue = picker.getSelectDate()[0] + "-" + picker.getSelectDate()[1];
tb_data(requestId, Config.id, level.getKey() + "", picker.getSelectDate()[0] + "-" + picker.getSelectDate()[1]);
changeUI(false, "本月", "某月", picker.getSelectDate()[0] + "-" + picker.getSelectDate()[1], "本月得分", "上月得分"); // 这里第二个参数无用
popupWindow.dismiss();
} else {
M.toast(getActivity(), "操作无效");
}
dropPop.dismiss();
break;
case 3: // 学期
// 不是学期的设置空值
level.setValue(-1);
level.setMonth(null);
level.setXnYear(""); // 学年标记
ChA = 1000; // 清理周标记
// level.setMonth(null);
// level.setXnYear(""); // 学年标记
int val; // 刷新列表的时候使用
... ... @@ -838,26 +870,25 @@ public class StuEvaFragment_per extends BaseFragment {
changeUI(false, "本学期", "某学期", xnlevel.getName() + "-" + xnlevel.getItemBeans().get(0).getNames(), "本学期得分", "上学期得分"); // 这里第二个参数无用
}
requestValue = val+"";
tb_data(requestId, Config.id, level.getKey() + "", val + "");
popupWindow.dismiss();
dropPop.dismiss();
break;
case 4: // 学年
// 不是学年的设置空值
level.setValue(-1);
level.setMonth(null);
ChA = 1000; // 清理周
level.setSchYear(null); // 学期
// level.setMonth(null);
// level.setSchYear(null); // 学期
level.setXnVal(wheel3.getSelectedIndex()); // 下次进来之后选择器得默认值
int xnval = arr.get(1).get(wheel3.getSelectedIndex()).getValue();
int xnIndex = wheel3.getSelectedIndex();
tb_data(requestId, Config.id, level.getKey() + "", xnval + "");
requestValue = xnval + "";
changeUI(false, "本学年", "某学年", arr.get(1).get(xnIndex).getName() + "", "本学年得分", "上学年得分"); // 这里第二个参数无用
popupWindow.dismiss();
dropPop.dismiss();
break;
}
... ... @@ -871,24 +902,10 @@ public class StuEvaFragment_per extends BaseFragment {
// 确定之后更换页面数据 -- 这里主要是 为了稍微整理一下代码 , 方便到时候统一管理
private void changeUI(boolean lx, String... par) { // lx 用来区分 周 , (月 , 学期 , 学年) 因为除了周有两条折线 , 别的之后一条
per_value.setText(par[2]);
sj_title.setText(par[3]);
sj_score.setText(par[4]);
// 顺序留作参考
// bz.setText("本周");
// xz.setText("上周");
// per_value.setText("按周查看");
// sj_title.setText("本周得分");
// sj_score.setText("上周得分");
// bz.setText("本月");
// per_value.setText("按月查看");
// sj_title.setText("本月得分");
// sj_score.setText("上月得分");
}
// 提供给弹窗 - > 学年 - > 控件设置数据
... ... @@ -921,59 +938,42 @@ public class StuEvaFragment_per extends BaseFragment {
}
// 提供给弹窗的adapter - > 周 - > 控件设置数据
private void setDate(RecyclerView rv, int page, int count, int tag) { // tag - > 周
// 提供给弹窗的adapter - > 周 - > 控件设置数据
dataAdapter adapter;
private void setDate() { // tag - > 周
M.log("checkValue111", arr.size() + "");
if (items.size() > 0) {
items.clear();
}
if (arr.size() > 0) {
items.addAll(arr.get(page));
setRv(rv, 0, 0, count);
dataAdapter adapter; // level.getValue , 上面如果选中月 , 学期 , 学年 , 确定之后会将 level.getValue == - 1 , 这样下次进入周的时候, 就不会出现默认值了
if (level.getValue() != -1) {
for (int i = 0; i < items.size(); i++) {
if (items.get(i).isChecked() == 1) {
if (level.getValue() == 1000) {
level.setValue(i);
}
}
}
adapter = new dataAdapter(R.layout.item_date, items, items.get(level.getValue()).getValue()); // 最后一个参数 , 是刚点开弹窗 , 有一个默认当前周的选中
} else {
adapter = new dataAdapter(R.layout.item_date, items, -1);
}
items.addAll(arr.get(0)); // 数据源
rv.setAdapter(adapter);
if (level.getValue() != 1000 && items.size() > level.getValue()) {
if (tag == ChA) {
adapter.change(items.get(level.getValue()).getValue() + "");
adapter.notifyDataSetChanged();
}
}
M.log("checkValue222", level.getValue() + "");
adapter = new dataAdapter(R.layout.item_date, items, items.get(level.getValue()).getValue());
dropRv.setAdapter(adapter);
// right 时间选择 周 , 学期 , 学年
// right 时间选择 周
adapter.setOnItemChildClickListener((adapter1, view1, position) -> {
switch (view1.getId()) {
case R.id.date_linear:
adapter.change(items.get(position).getValue() + "", 1000);
adapter.notifyDataSetChanged();
level.setValue(position);
ChA = level.getKey(); // 选中的时候保存, 点击标记 , setDate()方法再次执行的时候, 区分选中状态
M.log("checkValue444", level.getValue() + "");
}
});
}
}
// ---------------------------------------------------------- 这条线上面的是日期选择弹窗 --------------------------------------------------------------------------
// ---------------------------------------------------------- main 接口日期 --------------------------------------------------------------------
private void date() { // 这里的 List<DateLevel> list 是一个败笔 , 因为一开始的时候数据是全部一致 , 我为了统一管理 , 后来改数据之后 , 觉得有点蠢 , 但是没时间改
arr.clear();
Api().dateList(Config.Token).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(data -> {
if (data.getCode() == M.success) {
arr.clear();
xnList.clear();
List<DateLevel> list = new ArrayList<>(); // 周
List<DateLevel> lis1 = new ArrayList<>(); // 学年
... ... @@ -981,13 +981,13 @@ public class StuEvaFragment_per extends BaseFragment {
List<DateEntity.DataBean.YearBean> year = data.getData().getYear();
for (int i = 0; i < week.size(); i++) {
list.add(new DateLevel(week.get(i).getValue(), week.get(i).getName() + "", week.get(i).getChecked()));
if (week.get(i).getChecked() == 1) { // 默认选中的值
level.setKey(1);
level.setValue(i);
per_value.setText("第" + (i + 1) + "周"); // 默认当前周
requestValue = (i + 1) + ""; // 这个默认值 , 不然右边评价项弹窗 , 点击无效 , 因为无周期值
}
list.add(new DateLevel(week.get(i).getValue(), week.get(i).getName() + "", week.get(i).getChecked()));
if (week.get(i).getChecked() == 1) { // 默认选中的值
level.setKey(1);
level.setValue(i);
per_value.setText("第" + (i + 1) + "周"); // 默认当前周
requestValue = (i + 1) + ""; // 这个默认值 , 不然右边评价项弹窗 , 点击无效 , 因为无周期值
}
if (i == week.size() - 1) {
arr.add(list);
}
... ... @@ -1002,11 +1002,10 @@ public class StuEvaFragment_per extends BaseFragment {
}
// 这是学期的数据
/* 这个破地方 , 如果用数据结构写 , 就这bi样, 我觉得用双map 可能会更好一些 */
List<DateEntity.DataBean.YearTermBean> year_term = data.getData().getYear_term();
for (int i = 0; i < year_term.size(); i++) {
ChooseXnLevel chooseXnLevel = new ChooseXnLevel(year_term.get(i).getValue(), year_term.get(i).getName() + "", year_term.get(i).isChecked());
List<ChooseXnLevel.ItemBeans> level = new ArrayList<>();
List<ChooseXnLevel.ItemBeans> level11 = new ArrayList<>();
List<DateEntity.DataBean.YearTermBean.ItemBean> item = year_term.get(i).getItem();
... ... @@ -1016,8 +1015,13 @@ public class StuEvaFragment_per extends BaseFragment {
itemBeans.setNames(item.get(k).getName() + "");
itemBeans.setChecked(item.get(k).isChecked());
level.add(itemBeans);
chooseXnLevel.setItemBeans(level);
if(item.get(k).isChecked() == 1){
level.setSchYear(new int[]{0,k});
M.log("getSchYear", level.getSchYear()[0] + "--" + level.getSchYear()[1]);
}
level11.add(itemBeans);
chooseXnLevel.setItemBeans(level11);
}
xnList.add(chooseXnLevel);
... ... @@ -1028,7 +1032,65 @@ public class StuEvaFragment_per extends BaseFragment {
}
});
}
private void date(int hf) { // 这里的 List<DateLevel> list 是一个败笔 , 因为一开始的时候数据是全部一致 , 我为了统一管理 , 后来改数据之后 , 觉得有点蠢 , 但是没时间改
Api().dateList(Config.Token).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(data -> {
if (data.getCode() == M.success) {
if (hf == 0) {
arr.clear();
List<DateLevel> list = new ArrayList<>(); // 周
List<DateLevel> lis1 = new ArrayList<>(); // 学年
List<DateEntity.DataBean.WeekBean> week = data.getData().getWeek();
List<DateEntity.DataBean.YearBean> year = data.getData().getYear();
for (int i = 0; i < week.size(); i++) {
list.add(new DateLevel(week.get(i).getValue(), week.get(i).getName() + "", week.get(i).getValue() == level.getValue() ? 1 : 0));
if (i == week.size() - 1) {
arr.add(list);
}
}
for (int i = 0; i < year.size(); i++) {
lis1.add(new DateLevel(year.get(i).getValue(), year.get(i).getName() + "", 0));
if (i == year.size() - 1) {
arr.add(lis1);
}
}
setDate();
} else {
xnList.clear();
// 这是学期的数据
List<DateEntity.DataBean.YearTermBean> year_term = data.getData().getYear_term();
for (int i = 0; i < year_term.size(); i++) {
ChooseXnLevel chooseXnLevel = new ChooseXnLevel(year_term.get(i).getValue(), year_term.get(i).getName() + "", year_term.get(i).isChecked());
List<ChooseXnLevel.ItemBeans> level = new ArrayList<>();
List<DateEntity.DataBean.YearTermBean.ItemBean> item = year_term.get(i).getItem();
for (int k = 0; k < year_term.get(i).getItem().size(); k++) {
ChooseXnLevel.ItemBeans itemBeans = new ChooseXnLevel.ItemBeans();
itemBeans.setValues(item.get(k).getValue());
itemBeans.setNames(item.get(k).getName() + "");
itemBeans.setChecked(item.get(k).isChecked());
level.add(itemBeans);
chooseXnLevel.setItemBeans(level);
}
xnList.add(chooseXnLevel);
}
}
} else if (data.getCode() == 401) {
ApiError.refreshToken();
}
});
}
// ---------------------------------------------------------- main 接口筛选 --------------------------------------------------------------------
private void zt_screen() {
Api().all_eva_items(Config.Token, Config.ClassId).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(data -> {
... ... @@ -1038,18 +1100,26 @@ public class StuEvaFragment_per extends BaseFragment {
for (int i = 0; i < pop_eva_item.size(); i++) {
List<AllevaitemsEntity.DataBean.ChildBean> cd = pop_eva_item.get(i).getChild();
for (int j = 0; j < cd.size(); j++) {
perQuest.add(cd.get(j).getId());
if (cd.get(j).isChecked()){
perQuest.add(cd.get(j).getId());
if (requestId.equals("")) {
requestId = cd.get(j).getId()+ "";
} else {
requestId = requestId + "," + cd.get(j).getId();
}
}
}
}
//
// 一级 - > 二级 - > 三级 (这里页面跳转有两种 , 不懂可以问一下产品)
tb_data(requestId,Config.id, level.getKey() + "", requestValue); // 进来一个默认值先
} else if (data.getCode() == 401) {
ApiError.refreshToken();
}
});
}
// ------------------------------------------------------ adapter --------------------------------------------------------------------
/* left */
/* left */
class listAdapter extends BaseAdapter {
int pos = 0;
... ... @@ -1271,14 +1341,15 @@ public class StuEvaFragment_per extends BaseFragment {
}
// ----------------------------------------------- 图表 -------------------------------------------------------
List<String> xaxis;
List<String> xaxis= new ArrayList<>();
List<String> xaxis1= new ArrayList<>();
// LineChar - > 折线图
List<Float> current;
List<Float> last;
List<Float> current= new ArrayList<>();
List<Float> last= new ArrayList<>();
// Hisgram - > 柱状图
List<Float> student;
List<Float> classX;
List<Float> student= new ArrayList<>();
List<Float> classX = new ArrayList<>();
@SuppressLint("CheckResult")
private void tb_data(String evaluate_ids, int student_id, String cycle_type, String cycle_value) {
... ... @@ -1290,6 +1361,7 @@ public class StuEvaFragment_per extends BaseFragment {
xaxis = line.getXaxis();
current = line.getCurrent(); // 当前周
last = line.getLast(); // 上周
Toast.makeText(getActivity(), ""+level.getKey(), Toast.LENGTH_SHORT).show();
switch (level.getKey()) {
case 1:
List<List<Float>> yValues = new ArrayList<>();
... ... @@ -1364,6 +1436,49 @@ public class StuEvaFragment_per extends BaseFragment {
};
ZxLineChart.getXAxis().setValueFormatter(formatter);
// -------------------------------------------- 第三个图表 - 详情 ----------------------------------------------------
GrpjEntity_tb.DataBean.DetailBean detail = data.getData().getDetail();
xaxis1 = detail.getXaxis(); // 详细得分x轴
student = detail.getStudent(); // 学生
classX = detail.getClassX(); // 班级平均分
List<Float> yaxis1 = detail.getYaxis();
//颜色集合
ArrayList<Entry> lastvalues = new ArrayList<>();
if (classX!=null){
for (int i = 0; i < classX.size(); i++) {
float val = classX.get(i);
lastvalues.add(new Entry(i, val)); // x 轴 y轴
}
}
//颜色集合
List<Integer> colours = new ArrayList<>();
colours.add(colorsTwo[0]);
colours.add(colorsTwo[1]);
ArrayList<Float> xValues = new ArrayList<>();
for (int i = 0; i < detail.getXaxis().size(); i++) {
xValues.add((float) i);
}
//线的名字集合
List<String> names = new ArrayList<>();
names.add("学生得分");
names.add("班级平均分");
barChartManager.ShowBart(xValues,student,classX,names,colours);
barChartManager.setYAxis(detail.getYaxis().get(0), detail.getYaxis().get(detail.getYaxis().size() - 1), detail.getYaxis().size());
ValueFormatter Barformatter = new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
//设置 xAxis.setGranularity(1);后 value是从0开始的,每次加1,
int v = (int) value;
if (v < detail.getXaxis().size() && v >= 0) {
String st = detail.getXaxis().get(v);
String tim1 = "";
tim1 = st;
return tim1;
} else {
return null;
}
}
};
chart.getXAxis().setValueFormatter(Barformatter);
} else if (data.getCode() == 401) {
ApiError.refreshToken();
}
... ... @@ -1381,9 +1496,7 @@ public class StuEvaFragment_per extends BaseFragment {
}
});
}
// ----------------------------------------------- 数据 --------------------------------------------------------
} // ----------------------------------------------- 数据 --------------------------------------------------------
class pjfxAdapter_sj extends BaseQuickAdapter<GrpjEntity_sj.DataBean, BaseViewHolder> {
public pjfxAdapter_sj(int layoutResId, @Nullable List<GrpjEntity_sj.DataBean> data) {
... ... @@ -1415,16 +1528,4 @@ public class StuEvaFragment_per extends BaseFragment {
}
}
}
int floatToInt(float f) {
int i = 0;
if (f > 0) //正数
i = (int) ((f * 10 + 9) / 10);
else if (f < 0) //负数
i = (int) ((f * 10 - 9) / 10);
else i = 0;
return i;
}
}
... ...
... ... @@ -63,7 +63,7 @@ public class LoginActivity extends BaseActivity {
@Override
protected void initData() {
String token = SharedPreferenceUtil.get(this, M.Token, "").toString();
int ClassId = (int) SharedPreferenceUtil.get(this, M.ClassId, 0);
int ClassId = Integer.parseInt((String) SharedPreferenceUtil.get(this, M.ClassId, "")) ;
if (token != null && !token.equals("")) {
Config.Token = token;
Config.ClassId =ClassId;
... ...
... ... @@ -21,6 +21,7 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager;
... ... @@ -71,7 +72,7 @@ import jsc.kit.wheel.base.WheelItemView;
public class PjfxActivity_per extends BaseActivity {
// ----------------------------------------------- main ------------------------------------------------
// 学生个人的评价分析
// 学生得分个人的评价分析
@BindView(R.id.include_back)
ImageView includeBack;
@BindView(R.id.include_name)
... ... @@ -337,6 +338,7 @@ public class PjfxActivity_per extends BaseActivity {
TextView lastweek_val = view.findViewById(R.id.pop_char_last_week_value);
View weeK_view = view.findViewById(R.id.weeK_view);
View last_week = view.findViewById(R.id.last_week);
LinearLayout pop_back = view.findViewById(R.id.pop_back);
int iEnty = (int) entry.getX();
LinearLayout layoutX = view.findViewById(R.id.pop_char_lis_layoutB);
... ... @@ -346,40 +348,86 @@ public class PjfxActivity_per extends BaseActivity {
week.setVisibility(View.VISIBLE);
break;
case 1: // Historgram
week.setVisibility(View.GONE);
week.setText(xaxis1.get(iEnty)+"");
week.setVisibility(View.VISIBLE);
break;
}
switch (level.getKey()) {
case 1: // 周
layoutX.setVisibility(View.VISIBLE);
culwee.setText(type == 0 ? "本周" : "学生");
culwee.setText(type == 0 ? "本周" : "学生得分");
lastweek.setText(type == 0 ? "上周" : "班级");
if (type==0){
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_ffab13));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_40b0ff));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_ff5455));
}else {
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_49b0ff));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_b2ebd1));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_49b0ff));
}
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
lastweek_val.setText(type == 0 ? last.get(iEnty) + "" : classX.get(iEnty) + "");
break;
case 2: // 月
layoutX.setVisibility(View.GONE);
culwee.setText("本月");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
if (type==0){
layoutX.setVisibility(View.GONE);
culwee.setText("本月");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_ffab13));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_40b0ff));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_ff5455));
}else {
layoutX.setVisibility(View.VISIBLE);
culwee.setText("学生得分");
lastweek.setText("班级平均得分");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_49b0ff));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_b2ebd1));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_49b0ff));
culweek_val.setText(student.get(iEnty) + "");
lastweek_val.setText(classX.get(iEnty) + "");
}
break;
case 3: // 学期
layoutX.setVisibility(View.GONE);
culwee.setText("本学期");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
if (type==0){
layoutX.setVisibility(View.GONE);
culwee.setText("本学期");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_ffab13));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_40b0ff));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_ff5455));
}else {
layoutX.setVisibility(View.VISIBLE);
culwee.setText("学生得分");
lastweek.setText("班级平均得分");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_49b0ff));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_b2ebd1));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_49b0ff));
culweek_val.setText(student.get(iEnty) + "");
lastweek_val.setText(classX.get(iEnty) + "");
}
break;
case 4: // 学年
layoutX.setVisibility(View.GONE);
culwee.setText("本学年");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
if (type==0){
layoutX.setVisibility(View.GONE);
culwee.setText("本学年");
culweek_val.setText(type == 0 ? current.get(iEnty) + "" : student.get(iEnty) + "");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_ffab13));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_40b0ff));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_ff5455));
}else{
layoutX.setVisibility(View.VISIBLE);
culwee.setText("学生得分");
lastweek.setText("班级平均得分");
weeK_view.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_49b0ff));
last_week.setBackground(getResources().getDrawable(R.drawable.shape_solid_25_b2ebd1));
pop_back.setBackground(getResources().getDrawable(R.drawable.shape_stroke_1_49b0ff));
culweek_val.setText(student.get(iEnty) + "");
lastweek_val.setText(classX.get(iEnty) + "");
}
break;
}
... ... @@ -503,9 +551,7 @@ public class PjfxActivity_per extends BaseActivity {
requestId = requestId + "," + perQuest.get(i);
}
}
M.log("requestIdxxx", "requestId" + requestId + " level.getKey()" + level.getKey() + " requestValue" + requestValue);
tb_data(requestId, Integer.valueOf(getIntent().getStringExtra(M.StuId)), level.getKey() + "", requestValue);
pop.dismiss();
});
... ... @@ -778,7 +824,7 @@ public class PjfxActivity_per extends BaseActivity {
// 确定
timeChooseSure.setOnClickListener(v -> {
Toast.makeText(PjfxActivity_per.this, level.getKey()+"", Toast.LENGTH_SHORT).show();
if (level.getKey() != 0 || !(level.getValue() + "").equals("") || level.getMonth() != null) {
switch (level.getKey()) {
case 1: // 周
... ... @@ -805,6 +851,7 @@ public class PjfxActivity_per extends BaseActivity {
// level.setValue(-1);
// level.setSchYear(null);
// level.setXnYear(""); // 学年标记
requestValue = picker.getSelectDate()[0] + "-" + picker.getSelectDate()[1];
tb_data(requestId, Integer.valueOf(getIntent().getStringExtra(M.StuId)), level.getKey() + "", picker.getSelectDate()[0] + "-" + picker.getSelectDate()[1]);
changeUI(false, "本月", "某月", picker.getSelectDate()[0] + "-" + picker.getSelectDate()[1], "本月得分", "上月得分"); // 这里第二个参数无用
} else {
... ... @@ -829,6 +876,7 @@ public class PjfxActivity_per extends BaseActivity {
changeUI(false, "本学期", "某学期", xnlevel.getName() + "-" + xnlevel.getItemBeans().get(0).getNames(), "本学期得分", "上学期得分"); // 这里第二个参数无用
}
requestValue = val+"";
tb_data(requestId, Integer.valueOf(getIntent().getStringExtra(M.StuId)), level.getKey() + "", val + "");
dropPop.dismiss();
... ... @@ -843,6 +891,7 @@ public class PjfxActivity_per extends BaseActivity {
int xnval = arr.get(1).get(wheel3.getSelectedIndex()).getValue();
int xnIndex = wheel3.getSelectedIndex();
tb_data(requestId, Integer.valueOf(getIntent().getStringExtra(M.StuId)), level.getKey() + "", xnval + "");
requestValue = xnval + "";
changeUI(false, "本学年", "某学年", arr.get(1).get(xnIndex).getName() + "", "本学年得分", "上学年得分"); // 这里第二个参数无用
dropPop.dismiss();
... ... @@ -994,7 +1043,6 @@ public class PjfxActivity_per extends BaseActivity {
}
});
}
private void date(int hf) { // 这里的 List<DateLevel> list 是一个败笔 , 因为一开始的时候数据是全部一致 , 我为了统一管理 , 后来改数据之后 , 觉得有点蠢 , 但是没时间改
Api().dateList(Config.Token).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(data -> {
... ... @@ -1064,8 +1112,6 @@ public class PjfxActivity_per extends BaseActivity {
}
});
}
// ---------------------------------------------------------- main 接口筛选 --------------------------------------------------------------------
private void zt_screen() {
Api().all_eva_items(Config.Token, Config.ClassId).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(data -> {
... ... @@ -1130,7 +1176,6 @@ public class PjfxActivity_per extends BaseActivity {
}
});
}
// ------------------------------------------------------ adapter --------------------------------------------------------------------
/* left */
class listAdapter extends BaseAdapter {
... ... @@ -1355,7 +1400,7 @@ public class PjfxActivity_per extends BaseActivity {
// ----------------------------------------------- 图表 -------------------------------------------------------
List<String> xaxis;
List<String> xaxis1;
// LineChar - > 折线图
List<Float> current;
List<Float> last;
... ... @@ -1448,17 +1493,9 @@ public class PjfxActivity_per extends BaseActivity {
ZxLineChart.getXAxis().setValueFormatter(formatter);
// -------------------------------------------- 第三个图表 - 详情 ----------------------------------------------------
GrpjEntity_tb.DataBean.DetailBean detail = data.getData().getDetail();
List<String> xaxis1 = detail.getXaxis(); // 详细得分x轴
student = detail.getStudent(); // 学生
classX = detail.getClassX(); // 班级
List<Float> yaxis1 = detail.getYaxis();
//颜色集合
ArrayList<Entry> lastvalues = new ArrayList<>();
for (int i = 0; i < classX.size(); i++) {
float val = classX.get(i);
lastvalues.add(new Entry(i, val)); // x 轴 y轴
}
xaxis1 = detail.getXaxis(); // 详细得分x轴
student = detail.getStudent(); // 学生得分
classX = detail.getClassX(); // 班级平均得分
//颜色集合
List<Integer> colours = new ArrayList<>();
colours.add(colorsTwo[0]);
... ... @@ -1469,9 +1506,9 @@ public class PjfxActivity_per extends BaseActivity {
}
//线的名字集合
List<String> names = new ArrayList<>();
names.add("个人");
names.add("班级");
barChartManager.ShowBart(xValues,student,classX,names,colours);
names.add("学生得分");
names.add("班级平均得分");
barChartManager.ShowBart(xValues,detail.getStudent(),detail.getClassX(),names,colours);
barChartManager.setYAxis(detail.getYaxis().get(0), detail.getYaxis().get(detail.getYaxis().size() - 1), detail.getYaxis().size());
ValueFormatter Barformatter = new ValueFormatter() {
@Override
... ... @@ -1540,16 +1577,4 @@ public class PjfxActivity_per extends BaseActivity {
}
}
}
int floatToInt(float f) {
int i = 0;
if (f > 0) //正数
i = (int) ((f * 10 + 9) / 10);
else if (f < 0) //负数
i = (int) ((f * 10 - 9) / 10);
else i = 0;
return i;
}
}
... ...
... ... @@ -20,7 +20,7 @@ public class BarChartManager {
this.barChart = mBarChart;
leftAxis = barChart.getAxisLeft();
rightAxis = barChart.getAxisRight();
mBarChart.setViewPortOffsets(120, 40, 60, 120);
mBarChart.setViewPortOffsets(150, 20, 100, 200);
xAxis = barChart.getXAxis();
}
private void initBarChart(){
... ... @@ -92,6 +92,7 @@ public class BarChartManager {
data.setBarWidth(barWidth);
data.groupBars(0.0f, groupSpace, barSpace);
xAxis.setLabelCount(xAxisValues.size(), true);
barChart.setData(data);
}
/**
... ...
... ... @@ -26,7 +26,8 @@ public class LineChartManager {
this.lineChart = mLineChart;
leftAxis = lineChart.getAxisLeft();
rightAxis = lineChart.getAxisRight();
lineChart.setViewPortOffsets(120, 20, 60, 120);
lineChart.setViewPortOffsets(150, 20, 150, 160);
xAxis = lineChart.getXAxis();
}
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!--四个角-->
<corners android:radius="@dimen/dp_1"/>
<stroke android:width="@dimen/dp_1" android:color="#49B0FF"/>
<solid android:color="@color/tmfff"/>
</shape>
\ No newline at end of file
... ...
... ... @@ -3,6 +3,7 @@
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:background="@drawable/shape_stroke_1_ff5455"
android:id="@+id/pop_back"
android:orientation="vertical">
<TextView
... ...