第二阶段SCRUM
1、整个项目预期的任务量 :两个月
2、 目前已经花的时间:将近三个月还剩余的时间
3、SCRUM 会议的照片一张

4、产品的状态
产品能够让学生提交作业,并且提醒学生有作业,有考试等。老师能够发布作业,并且查看学生提交的作业和考试等。
package com.example.shazidouhuiapp.activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.shazidouhuiapp.Bean.User;
import com.example.shazidouhuiapp.R;
import com.example.shazidouhuiapp.Util.Utils;
import org.json.JSONException;
import org.json.JSONObject;
import cn.bmob.v3.BmobUser;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.SaveListener;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;
public class mobloging extends AppCompatActivity {
private Button buttonCode,buttonLogin;
private EditText editTextPhoneNum,editTextCode,editPassword;
private TextView fogetPassword,Register;
private String phoneNum,code,pass;
private EventHandler eh;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initview();
eh = new EventHandler() {
@Override
public void afterEvent(int event, int result, Object data) {
if (result == SMSSDK.RESULT_COMPLETE){
//回调完成
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
//提交验证码成功
runOnUiThread(new Runnable() {
@Override
public void run() {
pass=editPassword.getText().toString().trim();;
phoneNum=editTextPhoneNum.getText().toString().trim();
BmobUser user=new BmobUser();
user.setPassword(pass);
user.setUsername(phoneNum);
user.login(new SaveListener<User>() {
@Override
public void done(User user, BmobException e) {
if(e==null){
Toast.makeText(mobloging.this, "登陆成功", Toast.LENGTH_SHORT).show();
if(user.getType().equals("student")){
startActivity(new Intent(mobloging.this,studentinterface.class));
}
else if(user.getType().equals("teacher")){
startActivity(new Intent(mobloging.this,teacherinterface.class));
}
}
else {
Toast.makeText(mobloging.this, "登陆失败"+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
});
}else if (event == SMSSDK.EVENT_GET_VOICE_VERIFICATION_CODE){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(mobloging.this,"语音验证发送",Toast.LENGTH_SHORT).show();
}
});
}
else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
//获取验证码成功
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(mobloging.this,"验证码已发送",Toast.LENGTH_SHORT).show();
}
});
}else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
Log.i("test","test");
}
}else{
((Throwable)data).printStackTrace();
Throwable throwable = (Throwable) data;
throwable.printStackTrace();
Log.i("1234",throwable.toString());
try {
JSONObject obj = new JSONObject(throwable.getMessage());
final String des = obj.optString("detail");
if (!TextUtils.isEmpty(des)){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(mobloging.this,des,Toast.LENGTH_SHORT).show();
}
});
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
};
// fogetPassword.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// startActivity(new Intent(mobloging.this,resetPassword.class));
// }
// });
Register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(mobloging.this,register.class));
}
});
//注册一个事件回调监听,用于处理SMSSDK接口请求的结果
SMSSDK.registerEventHandler(eh);
buttonCode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
phoneNum = editTextPhoneNum.getText().toString();
if(!phoneNum.isEmpty()){
if(Utils.checkTel(phoneNum)){ //利用正则表达式获取检验手机号
// 获取验证码
SMSSDK.getVerificationCode("86", phoneNum);
}else{
Toast.makeText(getApplicationContext(),"请输入有效的手机号",Toast.LENGTH_LONG).show();
}
}else {
Toast.makeText(getApplicationContext(),"请输入手机号",Toast.LENGTH_LONG).show();
return;
}
phoneNum = editTextPhoneNum.getText().toString();
}
});
buttonLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
code = editTextCode.getText().toString();
if(!code.isEmpty()){
//提交验证码
SMSSDK.submitVerificationCode("86", phoneNum, code);
}else{
Toast.makeText(getApplicationContext(),"请输入验证码",Toast.LENGTH_LONG).show();
return;
}
}
});
}
private void initview() {
// private Button buttonCode,buttonLogin;
// private EditText editTextPhoneNum,editTextCode,editPassword;
buttonCode=findViewById(R.id.verify_getVerify);
buttonLogin=findViewById(R.id.loginButton);
editPassword=findViewById(R.id.password);
editTextCode=findViewById(R.id.verify_verifyCode);
editTextPhoneNum=findViewById(R.id.phoneNumber);
fogetPassword=findViewById(R.id.fogetPassword);
Register=findViewById(R.id.Register);
}
// 使用完EventHandler需注销,否则可能出现内存泄漏
@Override
protected void onDestroy() {
super.onDestroy();
SMSSDK.unregisterEventHandler(eh);
}
}
package com.example.shazidouhuiapp.activity;
import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.example.shazidouhuiapp.Bean.IpetUser;
import com.example.shazidouhuiapp.MainActivity;
import com.example.shazidouhuiapp.R;
import com.example.shazidouhuiapp.Util.RealPathFromUriUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import butterknife.ButterKnife;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.datatype.BmobFile;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.UpdateListener;
import cn.bmob.v3.listener.UploadFileListener;
import de.hdodenhof.circleimageview.CircleImageView;
import permissions.dispatcher.NeedsPermission;
import permissions.dispatcher.RuntimePermissions;
@RuntimePermissions
public class Receivecamera extends AppCompatActivity {
private String id,parentid;
public static final int CHOOSE_PHOTO=2;
private String mpath=null;
private CircleImageView headImage;
private Button registreButtonSignup;
private BmobFile file;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photo);
Intent a=getIntent();
id=a.getStringExtra("id");
parentid=a.getStringExtra("parentid");
initview();
ButterKnife.bind(this);
registreButtonSignup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
/* 开启Pictures画面Type设定为image */
intent.setType("image/*");
/* 使用Intent.ACTION_GET_CONTENT这个Action */
intent.setAction(Intent.ACTION_GET_CONTENT);
/* 取得相片后返回本画面 */
startActivityForResult(intent, 1);
}
});
}
public final static int REQUEST_CODE_SOME_FEATURES_PERMISSIONS=1;
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_SOME_FEATURES_PERMISSIONS: {
for (int i = 0; i < permissions.length; i++) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
Log.e("TTT","Permissions --> " + "Permission Granted: " + permissions[i]);
} else if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
Log.e("TTT","Permissions --> " + "Permission Denied: " + permissions[i]);
}
}
}
break;
default: {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}
private void initview() {
registreButtonSignup=findViewById(R.id.registre_button_signup);
headImage=findViewById(R.id.head_image);
}
@NeedsPermission(Manifest.permission.CAMERA)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data==null){
Log.d("hhhhhhhhhhhhhhhhhhhhhhh", "data是空得: ");
return;
}
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
mpath = RealPathFromUriUtils.getRealPathFromUri(this, data.getData());
Log.d("mathimage", mpath+"000000000000000000000000000000000000000");
//上传头像
file=new BmobFile(new File(mpath));
Log.d("filefile", file.toString());
file.uploadblock(new UploadFileListener() {
@Override
public void done(BmobException e) {
if(e==null){
saveFile(file);
}
else{
Log.d("jiazaishibai1", "上传失败了呢"+e.getMessage()+"00000"+e.getErrorCode());
}
}
});
ContentResolver cr = this.getContentResolver();
try {
Log.d("qwe",mpath+"");
Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(data.getData()));
/* 将Bitmap设定到ImageView */
headImage.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
Log.d("qwe", e.getMessage(),e);
}
}
else{
Toast.makeText(this, "疗伤烧肉粽", Toast.LENGTH_SHORT).show();
Log.d("nalinali", "出错了,reault不ok");
}
super.onActivityResult(requestCode, resultCode, data);
}
private void saveFile(BmobFile file) {
IpetUser user=new IpetUser(id);
user.setUser_pic(file);
user.update(new UpdateListener() {
@Override
public void done(BmobException e) {
if(e==null){
Toast.makeText(Receivecamera.this,"上传成功",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(Receivecamera.this,"上传失败"+e.getMessage()+"0000"+e.getErrorCode(),Toast.LENGTH_SHORT).show();
Log.d("shangchuan", e.getMessage()+"+++"+e.getErrorCode());
Log.d("idnameddd", "done: "+id);
}
}
});
}
}
package com.example.shazidouhuiapp.activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.shazidouhuiapp.Bean.User;
import com.example.shazidouhuiapp.R;
import com.example.shazidouhuiapp.Util.Utils;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.List;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.BmobUser;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.FindListener;
import cn.bmob.v3.listener.SaveListener;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;
public class register extends AppCompatActivity {
private Button buttonCode,buttonLoginStudent,buttonLoginTeacher;
private EditText editTextPhoneNum,editTextCode,editPassword;
private String phoneNum,code,pass;
private EventHandler eh;
private int flag=1;//学生按钮
private int flag2=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
initview();
eh = new EventHandler() {
@Override
public void afterEvent(int event, int result, Object data) {
if (result == SMSSDK.RESULT_COMPLETE){
//回调完成
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
//提交验证码成功
runOnUiThread(new Runnable() {
@Override
public void run() {
flag2=0;
BmobQuery<User> bmobQuery=new BmobQuery<>();
bmobQuery.addWhereEqualTo("username", phoneNum+"");
bmobQuery.findObjects(new FindListener<User>(){
@Override
public void done(List<User> list, BmobException e) {
if(e==null){
if(list.size()!=0){
Toast.makeText(register.this, "此手机号已被注册", Toast.LENGTH_SHORT).show();
}
else if(list.size()==0){
User user=new User();
if(flag==1){
user.setType("student");
user.setUsername(phoneNum);
user.setPassword(pass);
user.setMobilePhoneNumberVerified(true);
user.setMobilePhoneNumber(phoneNum);
user.signUp(new SaveListener<User>() {
@Override
public void done(User user, BmobException e) {
if(e==null){
Toast.makeText(register.this, "注册成功", Toast.LENGTH_SHORT).show();
startActivity(new Intent(register.this,splash.class));
}
else {
Toast.makeText(register.this, "注册失败"+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
else if(flag==0){
user.setType("teacher");
user.setUsername(phoneNum);
user.setPassword(pass);
user.setMobilePhoneNumberVerified(true);
user.setMobilePhoneNumber(phoneNum);
user.signUp(new SaveListener<User>() {
@Override
public void done(User user, BmobException e) {
if(e==null){
Toast.makeText(register.this, "注册成功", Toast.LENGTH_SHORT).show();
startActivity(new Intent(register.this,teacherinterface.class));
}
else {
Toast.makeText(register.this, "注册失败"+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
Toast.makeText(register.this,"注册成功",Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(register.this, "出问题了呢", Toast.LENGTH_SHORT).show();
}
}
}
});
}
});
}else if (event == SMSSDK.EVENT_GET_VOICE_VERIFICATION_CODE){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(register.this,"语音验证发送",Toast.LENGTH_SHORT).show();
}
});
}
else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
//获取验证码成功
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(register.this,"验证码已发送",Toast.LENGTH_SHORT).show();
}
});
}else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
Log.i("test","test");
}
}else{
((Throwable)data).printStackTrace();
Throwable throwable = (Throwable) data;
throwable.printStackTrace();
Log.i("1234",throwable.toString());
try {
JSONObject obj = new JSONObject(throwable.getMessage());
final String des = obj.optString("detail");
if (!TextUtils.isEmpty(des)){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(register.this,des,Toast.LENGTH_SHORT).show();
}
});
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
};
//注册一个事件回调监听,用于处理SMSSDK接口请求的结果
SMSSDK.registerEventHandler(eh);
buttonCode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
phoneNum = editTextPhoneNum.getText().toString();
pass=editPassword.getText().toString().trim();
if(!phoneNum.isEmpty()){
if(Utils.checkTel(phoneNum)){ //利用正则表达式获取检验手机号
// 获取验证码
if(!pass.isEmpty()){
if(Utils.checkPssword(pass)){
SMSSDK.getVerificationCode("86", phoneNum);
}
else {
Toast.makeText(register.this, "请输入符合要求的密码", Toast.LENGTH_SHORT).show();
}
}
else {
Toast.makeText(register.this, "请输入密码", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(getApplicationContext(),"请输入有效的手机号",Toast.LENGTH_LONG).show();
}
}else {
Toast.makeText(getApplicationContext(),"请输入手机号",Toast.LENGTH_LONG).show();
return;
}
phoneNum = editTextPhoneNum.getText().toString();
}
});
buttonLoginStudent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
code = editTextCode.getText().toString();
if(!code.isEmpty()){
//提交验证码
SMSSDK.submitVerificationCode("86", phoneNum, code);
}else{
Toast.makeText(getApplicationContext(),"请输入验证码",Toast.LENGTH_LONG).show();
return;
}
}
});
buttonLoginTeacher.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
code = editTextCode.getText().toString();
if(!code.isEmpty()){
//提交验证码
flag=0;//老师按钮
SMSSDK.submitVerificationCode("86", phoneNum, code);
}else{
Toast.makeText(getApplicationContext(),"请输入验证码",Toast.LENGTH_LONG).show();
return;
}
}
});
}
private void initview() {
// private Button buttonCode,buttonLoginStudent,buttonLoginTeacher;
// private EditText editTextPhoneNum,editTextCode,editPassword;
buttonCode=findViewById(R.id.register_getVerify);
buttonLoginStudent=findViewById(R.id.loginButtonsStudent);
buttonLoginTeacher=findViewById(R.id.loginButtonTeacher);
editTextPhoneNum=findViewById(R.id.register_phoneNumber);
editPassword=findViewById(R.id.register_setPassword);
editTextCode=findViewById(R.id.register_verifyCode);
}
// 使用完EventHandler需注销,否则可能出现内存泄漏
@Override
protected void onDestroy() {
super.onDestroy();
SMSSDK.unregisterEventHandler(eh);
}
}
package com.example.shazidouhuiapp.activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.shazidouhuiapp.Bean.User;
import com.example.shazidouhuiapp.R;
import com.example.shazidouhuiapp.Util.Utils;
import org.json.JSONException;
import org.json.JSONObject;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.BmobUser;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.SaveListener;
import cn.bmob.v3.listener.UpdateListener;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;
public class resetPassword extends AppCompatActivity {
private Button buttonCode,buttonLogin;
private EditText editTextPhoneNum,editTextCode,editPassword;
private String phoneNum,code,pass,oldpass;
private EventHandler eh;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_passwordreset);
initview();
eh = new EventHandler() {
@Override
public void afterEvent(int event, int result, Object data) {
if (result == SMSSDK.RESULT_COMPLETE){
//回调完成
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
//提交验证码成功
runOnUiThread(new Runnable() {
@Override
public void run() {
pass=editPassword.getText().toString().trim();;
phoneNum=editTextPhoneNum.getText().toString().trim();
BmobUser user=new BmobUser();
user.setUsername(phoneNum);
user.setPassword(pass);
user.update(new UpdateListener() {
@Override
public void done(BmobException e) {
if(e==null){
Toast.makeText(resetPassword.this, "修改成功", Toast.LENGTH_SHORT).show();
startActivity(new Intent(resetPassword.this,splash.class));
}
else{
Toast.makeText(resetPassword.this, "修改失败"+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
});
}else if (event == SMSSDK.EVENT_GET_VOICE_VERIFICATION_CODE){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(resetPassword.this,"语音验证发送",Toast.LENGTH_SHORT).show();
}
});
}
else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
//获取验证码成功
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(resetPassword.this,"验证码已发送",Toast.LENGTH_SHORT).show();
}
});
}else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
Log.i("test","test");
}
}else{
((Throwable)data).printStackTrace();
Throwable throwable = (Throwable) data;
throwable.printStackTrace();
Log.i("1234",throwable.toString());
try {
JSONObject obj = new JSONObject(throwable.getMessage());
final String des = obj.optString("detail");
if (!TextUtils.isEmpty(des)){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(resetPassword.this,des,Toast.LENGTH_SHORT).show();
}
});
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
};
//注册一个事件回调监听,用于处理SMSSDK接口请求的结果
SMSSDK.registerEventHandler(eh);
buttonCode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
phoneNum = editTextPhoneNum.getText().toString();
pass=editPassword.getText().toString();
if(!phoneNum.isEmpty()){
if(Utils.checkTel(phoneNum)){ //利用正则表达式获取检验手机号
// 获取验证码
if(!pass.isEmpty()){
if(Utils.checkPssword(pass)){
SMSSDK.getVerificationCode("86", phoneNum);
}
else {
Toast.makeText(resetPassword.this, "请输入符合要求的密码", Toast.LENGTH_SHORT).show();
}
}
else {
Toast.makeText(resetPassword.this, "请输入密码", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(getApplicationContext(),"请输入有效的手机号",Toast.LENGTH_LONG).show();
}
}else {
Toast.makeText(getApplicationContext(),"请输入手机号",Toast.LENGTH_LONG).show();
return;
}
phoneNum = editTextPhoneNum.getText().toString();
}
});
buttonLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
code = editTextCode.getText().toString();
if(!code.isEmpty()){
//提交验证码
SMSSDK.submitVerificationCode("86", phoneNum, code);
}else{
Toast.makeText(getApplicationContext(),"请输入验证码",Toast.LENGTH_LONG).show();
return;
}
}
});
}
private void initview() {
// private Button buttonCode,buttonLogin;
// private EditText editTextPhoneNum,editTextCode,editPassword;
buttonCode=findViewById(R.id.reset_getVerify);
buttonLogin=findViewById(R.id.resetButton);
editPassword=findViewById(R.id.newPassword);
editTextCode=findViewById(R.id.reset_verifyCode);
editTextPhoneNum=findViewById(R.id.reset_phoneNumber);
}
// 使用完EventHandler需注销,否则可能出现内存泄漏
@Override
protected void onDestroy() {
super.onDestroy();
SMSSDK.unregisterEventHandler(eh);
}
}
package com.example.shazidouhuiapp.activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.shazidouhuiapp.Bean.User;
import com.example.shazidouhuiapp.MainActivity;
import com.example.shazidouhuiapp.R;
import java.util.Timer;
import java.util.TimerTask;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.BmobUser;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.QueryListener;
import cn.bmob.v3.listener.SaveListener;
public class splash extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Timer timer = new Timer();
timer.schedule(timertask, 2000);
Bmob.initialize(this,"e575c228703fd6ae7b822919edc18236");
}
TimerTask timertask = new TimerTask() {
@Override
public void run() {
BmobUser currentUser = BmobUser.getCurrentUser(User.class);
//逻辑判断是否登录,登陆了进入对应用户界面
if (currentUser!=null) {
String id=currentUser.getObjectId();
BmobQuery<User> query=new BmobQuery<>();
query.getObject(id, new QueryListener<User>() {
@Override
public void done(User user, BmobException e) {
if(user.getType().equals("student")){
startActivity(new Intent(splash.this, studentinterface.class));
}
else if(user.getType().equals("teacher")){
startActivity(new Intent(splash.this,teacherinterface.class));
}
}
});
}
else {
// BmobUser user=new BmobUser();
// user.setUsername("15159538296");
// user.setPassword("123456");
// user.login(new SaveListener<User>() {
//
// @Override
// public void done(User user, BmobException e) {
// startActivity(new Intent(splash.this, studentinterface.class));
// }
// });
startActivity(new Intent(splash.this,mobloging.class));
}
}
};
}
package com.example.shazidouhuiapp.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.example.shazidouhuiapp.Adapter.HomeAdatpter;
import com.example.shazidouhuiapp.Adapter.readReceiveAdapter;
import com.example.shazidouhuiapp.Adapter.receiveAdapter;
import com.example.shazidouhuiapp.Bean.User;
import com.example.shazidouhuiapp.Bean.homework;
import com.example.shazidouhuiapp.Bean.homeworkContent;
import com.example.shazidouhuiapp.R;
import java.util.ArrayList;
import java.util.List;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.BmobUser;
import cn.bmob.v3.datatype.BmobPointer;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.FindListener;
public class student_readover_receive extends AppCompatActivity {
private String id;
private RecyclerView rv;
private SwipeRefreshLayout srlayout;
private TextView helloquestion;
// private TextView HelloHome;
// private TextView username,ok;
private LinearLayout homesearch;
List<homeworkContent> data;
private readReceiveAdapter readreceiveAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.student_unfinished_question);
initView();
//初始刷新
Refresh();
srlayout.setColorSchemeResources(android.R.color.holo_green_light,android.R.color.holo_red_light,android.R.color.holo_blue_light);
srlayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
//刷新;
Refresh();
}
});
}
private void Refresh() {
Intent a=getIntent();
id=a.getStringExtra("id");
String title=a.getStringExtra("title");
helloquestion.setText(title);
homework homework=new homework();
homework.setObjectId(id+"");
BmobQuery<homeworkContent> query=new BmobQuery();
query.addWhereRelatedTo("homeworkContent",new BmobPointer(homework));
query.findObjects(new FindListener<homeworkContent>() {
@Override
public void done(List<homeworkContent> list, BmobException e) {
if(e==null){
data=list;
readreceiveAdapter =new readReceiveAdapter(student_readover_receive.this,data,id);
rv.setLayoutManager(new LinearLayoutManager(student_readover_receive.this));
rv.setAdapter(readreceiveAdapter);
}
else {
Toast.makeText(student_readover_receive.this, "题目数据获取失败", Toast.LENGTH_SHORT).show();
}
}
});
}
private void initView() {
rv = findViewById(R.id.question_recyclerview);
srlayout =findViewById(R.id.question_swipe);
helloquestion=findViewById(R.id.helloquestion);
}
}
package com.example.shazidouhuiapp.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.example.shazidouhuiapp.Adapter.HomeAdatpter;
import com.example.shazidouhuiapp.Adapter.receiveAdapter;
import com.example.shazidouhuiapp.Bean.User;
import com.example.shazidouhuiapp.Bean.homework;
import com.example.shazidouhuiapp.Bean.homeworkContent;
import com.example.shazidouhuiapp.R;
import java.util.ArrayList;
import java.util.List;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.BmobUser;
import cn.bmob.v3.datatype.BmobPointer;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.FindListener;
public class student_unfinished_receive extends AppCompatActivity {
private String id;
private RecyclerView rv;
private SwipeRefreshLayout srlayout;
private TextView helloquestion;
// private TextView HelloHome;
// private TextView username,ok;
private LinearLayout homesearch;
List<homeworkContent> data;
private receiveAdapter receiveAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.student_unfinished_question);
initView();
//初始刷新
Refresh();
srlayout.setColorSchemeResources(android.R.color.holo_green_light,android.R.color.holo_red_light,android.R.color.holo_blue_light);
srlayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
//刷新;
Refresh();
}
});
}
private void Refresh() {
Intent a=getIntent();
id=a.getStringExtra("id");
String title=a.getStringExtra("title");
helloquestion.setText(title+"");
homework homework=new homework();
homework.setObjectId(id+"");
BmobQuery<homeworkContent> query=new BmobQuery();
query.addWhereRelatedTo("homeworkContent",new BmobPointer(homework));
query.findObjects(new FindListener<homeworkContent>() {
@Override
public void done(List<homeworkContent> list, BmobException e) {
if(e==null){
data=list;
receiveAdapter =new receiveAdapter(student_unfinished_receive.this,data,id);
rv.setLayoutManager(new LinearLayoutManager(student_unfinished_receive.this));
rv.setAdapter(receiveAdapter);
}
else {
Toast.makeText(student_unfinished_receive.this, "题目数据获取失败", Toast.LENGTH_SHORT).show();
}
}
});
}
private void initView() {
rv = findViewById(R.id.question_recyclerview);
srlayout =findViewById(R.id.question_swipe);
helloquestion=findViewById(R.id.helloquestion);
}
}
package com.example.shazidouhuiapp.activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.example.shazidouhuiapp.Adapter.receiveAdapter;
import com.example.shazidouhuiapp.Bean.homework;
import com.example.shazidouhuiapp.Bean.homeworkContent;
import com.example.shazidouhuiapp.R;
import java.util.List;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.datatype.BmobPointer;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.FindListener;
import cn.bmob.v3.listener.QueryListener;
import cn.bmob.v3.listener.UpdateListener;
public class student_unfinished_receive_question extends AppCompatActivity {
private TextView question,score,status;
private EditText myanswer;
private Button submit,camera;
private ImageView returnview;
private String id,parent;
private homeworkContent hom;
private homework homework;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.student_unfinished_recieve);
initview();
initdata();
returnview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
private void initdata() {
//另外一种
Intent a=getIntent();
id=a.getStringExtra("id");
parent=a.getStringExtra("parentid");
hom=new homeworkContent();
homework=new homework();
hom.setObjectId(id+"");
homework.setObjectId(parent+"");
String mquestion=a.getStringExtra("question");
String mscore=a.getStringExtra("score");
String mstatus=a.getStringExtra("status");
if(mstatus.equals("true")){
status.setText("已完成");
}
else if(mstatus.equals("false")){
status.setText("未完成");
}
question.setText(mquestion);
score.setText(mscore);
camera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent in=new Intent(student_unfinished_receive_question.this,Receivecamera.class);
in.putExtra("id",id+"");
in.putExtra("parentid",parent+"");
startActivity(in);
}
});
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String answer=myanswer.getText().toString().trim();
if(answer.isEmpty()){
Toast.makeText(student_unfinished_receive_question.this, "请输入你的答案", Toast.LENGTH_SHORT).show();
}
else {
hom.setMyAnswer(answer);
hom.setStatus(true);
hom.update(new UpdateListener() {
@Override
public void done(BmobException e) {
if(e==null){
BmobQuery<homeworkContent> query=new BmobQuery();
query.addWhereRelatedTo("homeworkContent",new BmobPointer(homework));
query.findObjects(new FindListener<homeworkContent>() {
@Override
public void done(List<homeworkContent> list, BmobException e) {
if(e==null){
int flag=0;
for (homeworkContent homew:list
) {
if(homew.isStatus()==true){
flag++;
}
}
Toast.makeText(student_unfinished_receive_question.this, "本小题提交成功", Toast.LENGTH_SHORT).show();
if(flag>=(list.size()-1)){
homework.setStatus(true);
homework.update(new UpdateListener() {
@Override
public void done(BmobException e) {
if(e==null){
Toast.makeText(student_unfinished_receive_question.this, "您已完成本次作业所有题目", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(student_unfinished_receive_question.this, "本次作业更新失败"+e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
}
else {
Toast.makeText(student_unfinished_receive_question.this, "获取题目数据失败", Toast.LENGTH_SHORT).show();
}
}
});
}
else{
Log.d("提交失败", e.getMessage()+"");
Toast.makeText(student_unfinished_receive_question.this, "提交失败"+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
}
});
}
private void initview() {
question=findViewById(R.id.receive_question_question);
score=findViewById(R.id.receive_question_score);
status=findViewById(R.id.receive_question_status);
myanswer=findViewById(R.id.receive_myanswer);
returnview=findViewById(R.id.receiveback);
submit=findViewById(R.id.receive_submit);
camera=findViewById(R.id.camera);
}
}
package com.example.shazidouhuiapp.activity;
import android.os.Bundle;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import com.ashokvarma.bottomnavigation.BottomNavigationBar;
import com.ashokvarma.bottomnavigation.BottomNavigationItem;
import com.example.shazidouhuiapp.Adapter.setAdapter;
import com.example.shazidouhuiapp.R;
import com.example.shazidouhuiapp.fragment.FragmentMine;
import com.example.shazidouhuiapp.fragment.FragmentReadOver;
import com.example.shazidouhuiapp.fragment.FragmentUnfinished;
import java.util.ArrayList;
import java.util.List;
public class studentinterface extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener, ViewPager.OnPageChangeListener {
private ViewPager viewPager;
private BottomNavigationBar bottomNavigationBar;
private List<Fragment> fragmentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=findViewById(R.id.viewpager);
bottomNavigationBar=findViewById(R.id.bottom);
initView();
}
private void initView() {
initViewPager();
initBottom();
}
private void initBottom() {
bottomNavigationBar.setTabSelectedListener(this);
bottomNavigationBar.clearAll();
bottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);
bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_DEFAULT);
bottomNavigationBar.setBarBackgroundColor(R.color.white).setActiveColor(R.color.colorbasel)
.setInActiveColor(R.color.black);
bottomNavigationBar.addItem(new BottomNavigationItem(R.drawable.homepage_fill,"未完成作业").setInactiveIconResource(R.drawable.homepage))
.addItem(new BottomNavigationItem(R.drawable.mobilephone_fill,"已批改作业").setInactiveIconResource(R.drawable.mobilephone))
.addItem(new BottomNavigationItem(R.drawable.mine_fill,"我的").setInactiveIconResource(R.drawable.mine))
.setFirstSelectedPosition(0)
.initialise();
}
private void initViewPager() {
viewPager.setOffscreenPageLimit(3);
//配置fragment
fragmentList=new ArrayList<>();
//三个底部导航栏的实例化
fragmentList.add(new FragmentUnfinished());
fragmentList.add(new FragmentReadOver());
fragmentList.add(new FragmentMine());
viewPager.setAdapter(new setAdapter(getSupportFragmentManager(),fragmentList));
viewPager.addOnPageChangeListener(this);
viewPager.setCurrentItem(0);
}
@Override
public void onTabSelected(int position) {
}
@Override
public void onTabUnselected(int position) {
}
@Override
public void onTabReselected(int position) {
viewPager.setCurrentItem(position);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
bottomNavigationBar.selectTab(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
}
package com.example.shazidouhuiapp.activity;
import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.shazidouhuiapp.R;
public class teacherinterface extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teacher);
Toast.makeText(this, "来到了老师界面", Toast.LENGTH_SHORT).show();
}
}
浙公网安备 33010602011771号