diff --git a/app/build.gradle b/app/build.gradle
index 295d3e2..d706ca8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -38,4 +38,6 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'com.github.felHR85:UsbSerial:6.1.0'
+ implementation 'androidx.paging:paging-runtime:3.0.0-alpha07'
+ implementation 'com.tencent:mmkv-static:1.2.7'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 226b770..365eccc 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,29 +9,37 @@
+ android:theme="@style/AppTheme">
+
+
+
+
+
+
-
-
-
+
+
+
+
-
+ android:enabled="true">
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/APP.java b/app/src/main/java/com/skipping/APP.java
index 8c81dab..fef33ff 100644
--- a/app/src/main/java/com/skipping/APP.java
+++ b/app/src/main/java/com/skipping/APP.java
@@ -3,10 +3,16 @@ package com.skipping;
import com.libs.fragment.BaseApplication;
+import com.tencent.mmkv.MMKV;
/**
* @author Ming
* 3/14/22
*/
public class APP extends BaseApplication {
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ MMKV.initialize(this);
+ }
}
diff --git a/app/src/main/java/com/skipping/Contants.java b/app/src/main/java/com/skipping/Contants.java
index 61d2e81..681c1f8 100644
--- a/app/src/main/java/com/skipping/Contants.java
+++ b/app/src/main/java/com/skipping/Contants.java
@@ -17,4 +17,19 @@ public class Contants {
public final static String GRADE = "grade";
public final static String UNFINISHED = "未完成";
+
+ /**
+ * 账号
+ */
+ public final static String ACCOUNT = "account";
+
+ /**
+ * 密码
+ */
+ public final static String PASSWORD = "password";
+
+ /**
+ * token
+ */
+ public final static String TOKEN = "token";
}
diff --git a/app/src/main/java/com/skipping/activity/NetActivity.java b/app/src/main/java/com/skipping/activity/NetActivity.java
index 5e21509..12e2298 100644
--- a/app/src/main/java/com/skipping/activity/NetActivity.java
+++ b/app/src/main/java/com/skipping/activity/NetActivity.java
@@ -2,6 +2,11 @@ package com.skipping.activity;
import android.view.View;
import android.widget.Button;
+import android.widget.LinearLayout;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import com.libs.fragment.BaseActivity;
import com.libs.network.CallBack;
@@ -29,11 +34,13 @@ import java.util.List;
* 3/15/22
*/
public class NetActivity extends BaseActivity {
+ private RecyclerView recyclerview;
private Button btn, btn2, btn3, btn4, btn5, btn6, btn7;
private Concise tokenConcise = new Concise(Contants.BASE_URL) {
}.build();
private Concise concise;
-
+ private NetRecyclerAdapter adapter;
+ private LinearLayoutManager linearLayoutManager;
@Override
protected int getContentViewResId() {
return R.layout.activity_net;
@@ -48,6 +55,17 @@ public class NetActivity extends BaseActivity {
btn5 = findViewById(R.id.btn5);
btn6 = findViewById(R.id.btn6);
btn7 = findViewById(R.id.btn7);
+ recyclerview = findViewById(R.id.recyclerview);
+ linearLayoutManager = new LinearLayoutManager(this);
+ recyclerview.setLayoutManager(linearLayoutManager);
+ adapter = new NetRecyclerAdapter(recyclerview);
+ recyclerview.setAdapter(adapter);
+ recyclerview.setOnScrollChangeListener(new View.OnScrollChangeListener() {
+ @Override
+ public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+ LogUtil.e("最后一个可见",linearLayoutManager.findLastCompletelyVisibleItemPosition());
+ }
+ });
btn.setOnClickListener(new View.OnClickListener() {
@Override
@@ -112,12 +130,13 @@ public class NetActivity extends BaseActivity {
bean.setActivityType("timing");
bean.setGroupID("77bba9124a4281bc9f92f965561cd5");
bean.setIndex(1);
- bean.setPageSize(10);
+ bean.setPageSize(5);
bean.setStatus(Contants.UNFINISHED);
concise.request(NetActivity.this, concise.api.getActivityList(bean), new CallBack>>() {
@Override
public void onSuccess(BaseBean> listBaseBean) {
-
+ adapter.setData(listBaseBean.getData());
+ adapter.notifyDataSetChanged();
}
@Override
@@ -155,9 +174,9 @@ public class NetActivity extends BaseActivity {
btn6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- concise.request(NetActivity.this, concise.api.detailActivity("15"), new CallBack>>() {
+ concise.request(NetActivity.this, concise.api.detailActivity("15"), new CallBack>() {
@Override
- public void onSuccess(BaseBean> listBaseBean) {
+ public void onSuccess(BaseBean listBaseBean) {
}
diff --git a/app/src/main/java/com/skipping/activity/NetRecyclerAdapter.java b/app/src/main/java/com/skipping/activity/NetRecyclerAdapter.java
new file mode 100644
index 0000000..a2d58d1
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/NetRecyclerAdapter.java
@@ -0,0 +1 @@
+package com.skipping.activity;
import android.content.Context;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.skipping.R;
import com.skipping.net.ActivityBean;
import java.util.ArrayList;
import java.util.List;
/**
* @author Ming
* 1/6/22
*/
public class NetRecyclerAdapter extends RecyclerView.Adapter {
private Context mContext;
private List list = new ArrayList<>();
public NetRecyclerAdapter(RecyclerView recyclerView) {
this.mContext = recyclerView.getContext();
}
public void setData(List list) {
this.list = list;
}
@Override
public RecyclerHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.net_item, parent, false);
return new RecyclerHolder(view);
}
@Override
public void onBindViewHolder(RecyclerHolder holder, int position) {
holder.textView.setText(list.get(position).toString());
}
@Override
public int getItemCount() {
return list.size();
}
class RecyclerHolder extends RecyclerView.ViewHolder {
TextView textView;
private RecyclerHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.text);
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/activity/SplashActivity.java b/app/src/main/java/com/skipping/activity/SplashActivity.java
new file mode 100644
index 0000000..9932531
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/SplashActivity.java
@@ -0,0 +1,75 @@
+package com.skipping.activity;
+
+import android.content.Intent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+
+import com.libs.fragment.BaseActivity;
+import com.libs.network.CallBack;
+import com.libs.network.Concise;
+import com.skipping.Contants;
+import com.skipping.R;
+import com.skipping.activity.grade.GradeActivity;
+import com.skipping.net.API;
+import com.skipping.net.BaseBean;
+import com.skipping.net.TokenBean;
+import com.skipping.net.TokenReqBean;
+import com.tencent.mmkv.MMKV;
+
+/**
+ * @author Ming
+ * 3/18/22
+ */
+public class SplashActivity extends BaseActivity {
+ private EditText key, value;
+ private Button login;
+ private Concise tokenConcise;
+
+ @Override
+ protected int getContentViewResId() {
+ return R.layout.activity_splash;
+ }
+
+ @Override
+ protected void initView() {
+ key = findViewById(R.id.key);
+ value = findViewById(R.id.value);
+ login = findViewById(R.id.login);
+ }
+
+ @Override
+ protected void initData() {
+ login.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ login();
+ }
+ });
+ }
+
+ private void login() {
+ tokenConcise = new Concise(Contants.BASE_URL) {
+ }.build();
+ TokenReqBean tokenReqBean = new TokenReqBean();
+ tokenReqBean.setDeviceID("466e9c");
+ tokenReqBean.setLogName(key.getText().toString());
+ tokenReqBean.setLogPwd(value.getText().toString());
+ tokenConcise.request(SplashActivity.this, tokenConcise.api.token(tokenReqBean), new CallBack>() {
+ @Override
+ public void onSuccess(BaseBean tokenBeanBaseBean) {
+ MMKV kv = MMKV.defaultMMKV();
+ kv.encode(Contants.ACCOUNT, key.getText().toString());
+ kv.encode(Contants.PASSWORD, value.getText().toString());
+ kv.encode(Contants.TOKEN, tokenBeanBaseBean.getData().getToken());
+ Intent intent = new Intent(SplashActivity.this, GradeActivity.class);
+ startActivity(intent);
+ }
+
+ @Override
+ public void onFailed(Throwable e) {
+
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/skipping/activity/clasz/ClassActivity.java b/app/src/main/java/com/skipping/activity/clasz/ClassActivity.java
new file mode 100644
index 0000000..513c07d
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/clasz/ClassActivity.java
@@ -0,0 +1,76 @@
+package com.skipping.activity.clasz;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.libs.fragment.BaseActivity;
+import com.libs.network.CallBack;
+import com.libs.network.Concise;
+import com.libs.utils.LogUtil;
+import com.skipping.Contants;
+import com.skipping.R;
+import com.skipping.activity.list.ListActivity;
+import com.skipping.net.API;
+import com.skipping.net.BaseBean;
+import com.skipping.net.GradleBean;
+import com.tencent.mmkv.MMKV;
+
+import java.util.List;
+
+/**
+ * @author Ming
+ * 3/18/22
+ */
+public class ClassActivity extends BaseActivity {
+ private RecyclerView recyclerview;
+ private Concise concise;
+ private ClassAdapter classAdapter;
+
+ @Override
+ protected int getContentViewResId() {
+ return R.layout.activity_show;
+ }
+
+ @Override
+ protected void initView() {
+ recyclerview = findViewById(R.id.recyclerview);
+ }
+
+ @Override
+ protected void initData() {
+ String id = (String) getIntent().getBundleExtra("id").get("id");
+ recyclerview.setLayoutManager(new LinearLayoutManager(this));
+ classAdapter = new ClassAdapter(recyclerview);
+ classAdapter.setOnClickListener(new ClassAdapter.OnClick() {
+ @Override
+ public void click(String id) {
+ Intent intent = new Intent(ClassActivity.this, ListActivity.class);
+ Bundle bundle = new Bundle();
+ bundle.putString("id", id);
+ intent.putExtra("id", bundle);
+ startActivity(intent);
+ }
+ });
+ recyclerview.setAdapter(classAdapter);
+
+ MMKV kv = MMKV.defaultMMKV();
+ concise = new Concise(Contants.BASE_URL) {
+ }.addHeader("Token", kv.decodeString(Contants.TOKEN)).build();
+ concise.request(ClassActivity.this, concise.api.getClass(id), new CallBack>>() {
+ @Override
+ public void onSuccess(BaseBean> listBaseBean) {
+ classAdapter.setData(listBaseBean.getData());
+ classAdapter.notifyDataSetChanged();
+ }
+
+ @Override
+ public void onFailed(Throwable e) {
+
+ }
+ });
+
+ }
+}
diff --git a/app/src/main/java/com/skipping/activity/clasz/ClassAdapter.java b/app/src/main/java/com/skipping/activity/clasz/ClassAdapter.java
new file mode 100644
index 0000000..26230f7
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/clasz/ClassAdapter.java
@@ -0,0 +1,76 @@
+package com.skipping.activity.clasz;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.skipping.R;
+import com.skipping.net.GradleBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Ming
+ * 3/18/22
+ */
+public class ClassAdapter extends RecyclerView.Adapter {
+ private OnClick onClick;
+ private Context mContext;
+ private List list = new ArrayList<>();
+
+ public ClassAdapter(RecyclerView recyclerView) {
+ this.mContext = recyclerView.getContext();
+ }
+
+ public void setData(List list) {
+ this.list = list;
+ }
+
+ @Override
+ public ClassAdapter.RecyclerHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(mContext).inflate(R.layout.grade_item, parent, false);
+ return new ClassAdapter.RecyclerHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(ClassAdapter.RecyclerHolder holder, int position) {
+ holder.title.setText("班级名称:" + list.get(position).getGroupName());
+ holder.name.setText("班级ID:" + list.get(position).getGroupID());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onClick.click(list.get(position).getGroupID());
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ class RecyclerHolder extends RecyclerView.ViewHolder {
+ TextView title;
+ TextView name;
+
+ private RecyclerHolder(View itemView) {
+ super(itemView);
+ title = itemView.findViewById(R.id.title);
+ name = itemView.findViewById(R.id.name);
+ }
+ }
+
+ public void setOnClickListener(OnClick onClick){
+ this.onClick = onClick;
+ }
+
+ public interface OnClick{
+ void click(String id);
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/activity/detail/DetailActivity.java b/app/src/main/java/com/skipping/activity/detail/DetailActivity.java
new file mode 100644
index 0000000..faa4366
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/detail/DetailActivity.java
@@ -0,0 +1,74 @@
+package com.skipping.activity.detail;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.libs.fragment.BaseActivity;
+import com.libs.network.CallBack;
+import com.libs.network.Concise;
+import com.skipping.Contants;
+import com.skipping.R;
+import com.skipping.activity.NetActivity;
+import com.skipping.activity.clasz.ClassActivity;
+import com.skipping.activity.grade.GradeActivity;
+import com.skipping.activity.grade.GradeAdapter;
+import com.skipping.net.API;
+import com.skipping.net.BaseBean;
+import com.skipping.net.DetailActivityBean;
+import com.tencent.mmkv.MMKV;
+
+import java.util.List;
+
+/**
+ * @author Ming
+ * 3/18/22
+ */
+public class DetailActivity extends BaseActivity {
+ private Concise concise;
+ private TextView name, idTV;
+ private RecyclerView recyclerview;
+ private DetailAdapter adapter;
+
+ @Override
+ protected int getContentViewResId() {
+ return R.layout.activity_detail;
+ }
+
+ @Override
+ protected void initView() {
+ idTV = findViewById(R.id.id);
+ name = findViewById(R.id.name);
+ recyclerview = findViewById(R.id.recyclerview);
+ }
+
+ @Override
+ protected void initData() {
+ String id = (String) getIntent().getBundleExtra("id").get("id");
+ recyclerview.setLayoutManager(new LinearLayoutManager(this));
+ adapter = new DetailAdapter(recyclerview);
+ recyclerview.setAdapter(adapter);
+
+ MMKV kv = MMKV.defaultMMKV();
+ concise = new Concise(Contants.BASE_URL) {
+ }.addHeader("Token", kv.decodeString(Contants.TOKEN)).build();
+ concise.request(DetailActivity.this, concise.api.detailActivity(id), new CallBack>() {
+ @Override
+ public void onSuccess(BaseBean listBaseBean) {
+ idTV.setText(listBaseBean.getData().getId() + "");
+ name.setText(listBaseBean.getData().getActivityName() + "");
+ adapter.setData(listBaseBean.getData().getCandidates().get(0));
+ adapter.notifyDataSetChanged();
+
+ }
+
+ @Override
+ public void onFailed(Throwable e) {
+
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/skipping/activity/detail/DetailAdapter.java b/app/src/main/java/com/skipping/activity/detail/DetailAdapter.java
new file mode 100644
index 0000000..a05db4d
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/detail/DetailAdapter.java
@@ -0,0 +1,74 @@
+package com.skipping.activity.detail;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.skipping.R;
+import com.skipping.net.DetailActivityBean;
+import com.skipping.net.GradleBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Ming
+ * 3/18/22
+ */
+public class DetailAdapter extends RecyclerView.Adapter {
+ private OnClick onClick;
+ private Context mContext;
+ private List list = new ArrayList<>();
+
+ public DetailAdapter(RecyclerView recyclerView) {
+ this.mContext = recyclerView.getContext();
+ }
+
+ public void setData(List list) {
+ this.list = list;
+ }
+
+ @Override
+ public DetailAdapter.RecyclerHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(mContext).inflate(R.layout.detail_item, parent, false);
+ return new DetailAdapter.RecyclerHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(DetailAdapter.RecyclerHolder holder, int position) {
+ holder.name.setText("学生名称:" + list.get(position).getName());
+ holder.id.setText("ID:" + list.get(position).getPersonID());
+ holder.studentid.setText("学生ID:" + list.get(position).getStudentID());
+ holder.score.setText("分数:" + list.get(position).getScore());
+ }
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ class RecyclerHolder extends RecyclerView.ViewHolder {
+ TextView name, id, studentid, score;
+
+ private RecyclerHolder(View itemView) {
+ super(itemView);
+ name = itemView.findViewById(R.id.name);
+ id = itemView.findViewById(R.id.id);
+ studentid = itemView.findViewById(R.id.studentid);
+ score = itemView.findViewById(R.id.score);
+ }
+ }
+
+ public void setOnClickListener(OnClick onClick) {
+ this.onClick = onClick;
+ }
+
+ public interface OnClick {
+ void click(String id);
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/activity/grade/GradeActivity.java b/app/src/main/java/com/skipping/activity/grade/GradeActivity.java
new file mode 100644
index 0000000..3be5a51
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/grade/GradeActivity.java
@@ -0,0 +1,75 @@
+package com.skipping.activity.grade;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.libs.fragment.BaseActivity;
+import com.libs.network.CallBack;
+import com.libs.network.Concise;
+import com.skipping.Contants;
+import com.skipping.R;
+import com.skipping.activity.SplashActivity;
+import com.skipping.activity.clasz.ClassActivity;
+import com.skipping.net.API;
+import com.skipping.net.BaseBean;
+import com.skipping.net.GradleBean;
+import com.tencent.mmkv.MMKV;
+
+import java.util.List;
+
+/**
+ * @author Ming
+ * 3/18/22
+ */
+public class GradeActivity extends BaseActivity {
+ private RecyclerView recyclerview;
+ private Concise concise;
+ private GradeAdapter gradeAdapter;
+
+ @Override
+ protected int getContentViewResId() {
+ return R.layout.activity_show;
+ }
+
+ @Override
+ protected void initView() {
+ recyclerview = findViewById(R.id.recyclerview);
+ }
+
+ @Override
+ protected void initData() {
+ recyclerview.setLayoutManager(new LinearLayoutManager(this));
+ gradeAdapter = new GradeAdapter(recyclerview);
+ gradeAdapter.setOnClickListener(new GradeAdapter.OnClick() {
+ @Override
+ public void click(String id) {
+ Intent intent = new Intent(GradeActivity.this, ClassActivity.class);
+ Bundle bundle = new Bundle();
+ bundle.putString("id", id);
+ intent.putExtra("id", bundle);
+ startActivity(intent);
+ }
+ });
+ recyclerview.setAdapter(gradeAdapter);
+
+ MMKV kv = MMKV.defaultMMKV();
+ concise = new Concise(Contants.BASE_URL) {
+ }.addHeader("Token", kv.decodeString(Contants.TOKEN)).build();
+ concise.request(GradeActivity.this, concise.api.getGrade(), new CallBack>>() {
+ @Override
+ public void onSuccess(BaseBean> listBaseBean) {
+ gradeAdapter.setData(listBaseBean.getData());
+ gradeAdapter.notifyDataSetChanged();
+ }
+
+ @Override
+ public void onFailed(Throwable e) {
+
+ }
+ });
+
+ }
+}
diff --git a/app/src/main/java/com/skipping/activity/grade/GradeAdapter.java b/app/src/main/java/com/skipping/activity/grade/GradeAdapter.java
new file mode 100644
index 0000000..6e38f88
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/grade/GradeAdapter.java
@@ -0,0 +1,76 @@
+package com.skipping.activity.grade;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.skipping.R;
+import com.skipping.net.GradleBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Ming
+ * 3/18/22
+ */
+public class GradeAdapter extends RecyclerView.Adapter {
+ private OnClick onClick;
+ private Context mContext;
+ private List list = new ArrayList<>();
+
+ public GradeAdapter(RecyclerView recyclerView) {
+ this.mContext = recyclerView.getContext();
+ }
+
+ public void setData(List list) {
+ this.list = list;
+ }
+
+ @Override
+ public GradeAdapter.RecyclerHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(mContext).inflate(R.layout.grade_item, parent, false);
+ return new GradeAdapter.RecyclerHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(GradeAdapter.RecyclerHolder holder, int position) {
+ holder.title.setText("年级名称:" + list.get(position).getGroupName());
+ holder.name.setText("年级ID:" + list.get(position).getGroupID());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onClick.click(list.get(position).getGroupID());
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ class RecyclerHolder extends RecyclerView.ViewHolder {
+ TextView title;
+ TextView name;
+
+ private RecyclerHolder(View itemView) {
+ super(itemView);
+ title = itemView.findViewById(R.id.title);
+ name = itemView.findViewById(R.id.name);
+ }
+ }
+
+ public void setOnClickListener(OnClick onClick){
+ this.onClick = onClick;
+ }
+
+ public interface OnClick{
+ void click(String id);
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/activity/list/ListActivity.java b/app/src/main/java/com/skipping/activity/list/ListActivity.java
new file mode 100644
index 0000000..67f2845
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/list/ListActivity.java
@@ -0,0 +1,89 @@
+package com.skipping.activity.list;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.libs.fragment.BaseActivity;
+import com.libs.network.CallBack;
+import com.libs.network.Concise;
+import com.libs.utils.LogUtil;
+import com.skipping.Contants;
+import com.skipping.R;
+import com.skipping.activity.NetActivity;
+import com.skipping.activity.clasz.ClassActivity;
+import com.skipping.activity.detail.DetailActivity;
+import com.skipping.activity.grade.GradeAdapter;
+import com.skipping.net.API;
+import com.skipping.net.ActivityBean;
+import com.skipping.net.ActivityReqBean;
+import com.skipping.net.BaseBean;
+import com.skipping.net.GradleBean;
+import com.tencent.mmkv.MMKV;
+
+import java.util.List;
+
+/**
+ * @author Ming
+ * 3/18/22
+ */
+public class ListActivity extends BaseActivity {
+ private RecyclerView recyclerview;
+ private Concise concise;
+ private ListAdapter listAdapter;
+
+ @Override
+ protected int getContentViewResId() {
+ return R.layout.activity_show;
+ }
+
+ @Override
+ protected void initView() {
+ recyclerview = findViewById(R.id.recyclerview);
+ }
+
+ @Override
+ protected void initData() {
+ String id = (String) getIntent().getBundleExtra("id").get("id");
+ recyclerview.setLayoutManager(new LinearLayoutManager(this));
+ listAdapter = new ListAdapter(recyclerview);
+ listAdapter.setOnClickListener(new ListAdapter.OnClick() {
+ @Override
+ public void click(String id) {
+ Intent intent = new Intent(ListActivity.this, DetailActivity.class);
+ Bundle bundle = new Bundle();
+ bundle.putString("id", id);
+ intent.putExtra("id", bundle);
+ startActivity(intent);
+ }
+ });
+ recyclerview.setAdapter(listAdapter);
+
+ MMKV kv = MMKV.defaultMMKV();
+ concise = new Concise(Contants.BASE_URL) {
+ }.addHeader("Token", kv.decodeString(Contants.TOKEN)).build();
+ ActivityReqBean bean = new ActivityReqBean();
+ bean.setGenre(Contants.CLASS);
+ bean.setActivityType("timing");
+ bean.setGroupID(id);
+ bean.setIndex(1);
+ bean.setPageSize(10);
+ bean.setStatus(Contants.UNFINISHED);
+ LogUtil.e("提交",bean);
+ concise.request(ListActivity.this, concise.api.getActivityList(bean), new CallBack>>() {
+ @Override
+ public void onSuccess(BaseBean> listBaseBean) {
+ listAdapter.setData(listBaseBean.getData());
+ listAdapter.notifyDataSetChanged();
+ }
+
+ @Override
+ public void onFailed(Throwable e) {
+
+ }
+ });
+
+ }
+}
diff --git a/app/src/main/java/com/skipping/activity/list/ListAdapter.java b/app/src/main/java/com/skipping/activity/list/ListAdapter.java
new file mode 100644
index 0000000..50a9f22
--- /dev/null
+++ b/app/src/main/java/com/skipping/activity/list/ListAdapter.java
@@ -0,0 +1,86 @@
+package com.skipping.activity.list;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.skipping.R;
+import com.skipping.net.ActivityBean;
+import com.skipping.net.GradleBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Ming
+ * 3/18/22
+ */
+public class ListAdapter extends RecyclerView.Adapter {
+ private OnClick onClick;
+ private Context mContext;
+ private List list = new ArrayList<>();
+
+ public ListAdapter(RecyclerView recyclerView) {
+ this.mContext = recyclerView.getContext();
+ }
+
+ public void setData(List list) {
+ this.list = list;
+ }
+
+ @Override
+ public ListAdapter.RecyclerHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);
+ return new ListAdapter.RecyclerHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(ListAdapter.RecyclerHolder holder, int position) {
+ holder.title.setText("活动ID:" + list.get(position).getId() + "");
+ holder.name.setText("活动名称:" + list.get(position).getName() + "");
+ holder.orgid.setText("OrgID:" + list.get(position).getOrgID() + "");
+ holder.greadid.setText("GreadID:" + list.get(position).getGreadID() + "");
+ holder.classid.setText("ClassID:" + list.get(position).getClassID() + "");
+ holder.preson.setText("人数:" + list.get(position).getPersonNumber() + "");
+ holder.status.setText("状态:" + list.get(position).getStatus() + "");
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onClick.click(list.get(position).getId() + "");
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ class RecyclerHolder extends RecyclerView.ViewHolder {
+ TextView title, name, orgid, greadid, classid, preson, status;
+
+ private RecyclerHolder(View itemView) {
+ super(itemView);
+ title = itemView.findViewById(R.id.title);
+ name = itemView.findViewById(R.id.name);
+ orgid = itemView.findViewById(R.id.orgid);
+ greadid = itemView.findViewById(R.id.greadid);
+ classid = itemView.findViewById(R.id.classid);
+ preson = itemView.findViewById(R.id.preson);
+ status = itemView.findViewById(R.id.status);
+ }
+ }
+
+ public void setOnClickListener(OnClick onClick) {
+ this.onClick = onClick;
+ }
+
+ public interface OnClick {
+ void click(String id);
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/net/API.java b/app/src/main/java/com/skipping/net/API.java
index 3125815..e627b94 100644
--- a/app/src/main/java/com/skipping/net/API.java
+++ b/app/src/main/java/com/skipping/net/API.java
@@ -64,7 +64,7 @@ public interface API {
* @return
*/
@GET("activity/detail")
- Observable>> detailActivity(@Query("activityid") String id);
+ Observable> detailActivity(@Query("activityid") String id);
/**
* 上报
diff --git a/app/src/main/java/com/skipping/net/ActivityBean.java b/app/src/main/java/com/skipping/net/ActivityBean.java
index 100dce7..2e71435 100644
--- a/app/src/main/java/com/skipping/net/ActivityBean.java
+++ b/app/src/main/java/com/skipping/net/ActivityBean.java
@@ -26,7 +26,7 @@ public class ActivityBean implements Serializable {
* CreatedAt : 2022-03-14T08:38:21.495+08:00
*/
- private Integer id;
+ private Integer ID;
private String Name;
private String ActivityType;
private Integer Value;
@@ -41,11 +41,11 @@ public class ActivityBean implements Serializable {
private String CreatedAt;
public Integer getId() {
- return id;
+ return ID;
}
public void setId(Integer id) {
- this.id = id;
+ this.ID = id;
}
public String getName() {
@@ -147,7 +147,7 @@ public class ActivityBean implements Serializable {
@Override
public String toString() {
return "ActivityBean{" +
- "id=" + id +
+ "ID=" + ID +
", Name='" + Name + '\'' +
", ActivityType='" + ActivityType + '\'' +
", Value=" + Value +
diff --git a/app/src/main/java/com/skipping/net/DetailActivityBean.java b/app/src/main/java/com/skipping/net/DetailActivityBean.java
index 615c237..e4fc1d3 100644
--- a/app/src/main/java/com/skipping/net/DetailActivityBean.java
+++ b/app/src/main/java/com/skipping/net/DetailActivityBean.java
@@ -23,7 +23,7 @@ public class DetailActivityBean implements Serializable {
* Candidates : [[{"PersonID":"329b20b046f5888bcd5165d115f1","Name":"xiaofang","StudentID":"1002","Score":12,"Detail":null},{"PersonID":"4557de13408aaf9057752285c81a","Name":"xiaohai","StudentID":"1003","Score":8,"Detail":null},{"PersonID":"4dee38df466fa8469f0e62f672fb","Name":"xiaoli","StudentID":"1004","Score":9,"Detail":null}]]
*/
- private Integer id;
+ private Integer ID;
private String ActivityName;
private String ActivityType;
private Integer ActivityValue;
@@ -34,11 +34,11 @@ public class DetailActivityBean implements Serializable {
private List> Candidates;
public Integer getId() {
- return id;
+ return ID;
}
public void setId(Integer id) {
- this.id = id;
+ this.ID = id;
}
public String getActivityName() {
@@ -108,7 +108,7 @@ public class DetailActivityBean implements Serializable {
@Override
public String toString() {
return "DetailActivityBean{" +
- "id=" + id +
+ "id=" + ID +
", ActivityName='" + ActivityName + '\'' +
", ActivityType='" + ActivityType + '\'' +
", ActivityValue=" + ActivityValue +
diff --git a/app/src/main/res/drawable/ic_launcher_round.png b/app/src/main/res/drawable/ic_launcher_round.png
new file mode 100644
index 0000000..db5080a
Binary files /dev/null and b/app/src/main/res/drawable/ic_launcher_round.png differ
diff --git a/app/src/main/res/drawable/splash_preview.xml b/app/src/main/res/drawable/splash_preview.xml
new file mode 100644
index 0000000..94ff8a8
--- /dev/null
+++ b/app/src/main/res/drawable/splash_preview.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ -
+
+
+
+
diff --git a/app/src/main/res/layout/activity_detail.xml b/app/src/main/res/layout/activity_detail.xml
new file mode 100644
index 0000000..f05ae48
--- /dev/null
+++ b/app/src/main/res/layout/activity_detail.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_net.xml b/app/src/main/res/layout/activity_net.xml
index f08110e..a2e7981 100644
--- a/app/src/main/res/layout/activity_net.xml
+++ b/app/src/main/res/layout/activity_net.xml
@@ -48,4 +48,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="活动成绩上传接口" />
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_show.xml b/app/src/main/res/layout/activity_show.xml
new file mode 100644
index 0000000..6607ef3
--- /dev/null
+++ b/app/src/main/res/layout/activity_show.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml
new file mode 100644
index 0000000..0071299
--- /dev/null
+++ b/app/src/main/res/layout/activity_splash.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/detail_item.xml b/app/src/main/res/layout/detail_item.xml
new file mode 100644
index 0000000..5a1f3fb
--- /dev/null
+++ b/app/src/main/res/layout/detail_item.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/grade_item.xml b/app/src/main/res/layout/grade_item.xml
new file mode 100644
index 0000000..34f93b5
--- /dev/null
+++ b/app/src/main/res/layout/grade_item.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_item.xml b/app/src/main/res/layout/list_item.xml
new file mode 100644
index 0000000..6cfe583
--- /dev/null
+++ b/app/src/main/res/layout/list_item.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/net_item.xml b/app/src/main/res/layout/net_item.xml
new file mode 100644
index 0000000..fa8df2c
--- /dev/null
+++ b/app/src/main/res/layout/net_item.xml
@@ -0,0 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f8c6127..5991f45 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -7,4 +7,6 @@
#FF018786
#FF000000
#FFFFFFFF
+ #ffc20e
+ #ffc20e
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..4c5ceed
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index e564c14..d7ab5ca 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -13,4 +13,17 @@
- ?attr/colorPrimaryVariant
+
+
+
+
+
\ No newline at end of file