From 2031799e06ebad6b03c954364be396eceda3a27d Mon Sep 17 00:00:00 2001 From: pybple5kv <1766872402@qq.com> Date: Sun, 10 Jul 2022 22:21:31 +0800 Subject: [PATCH] ADD file via upload --- TestAnswerActivity.java | 262 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 TestAnswerActivity.java diff --git a/TestAnswerActivity.java b/TestAnswerActivity.java new file mode 100644 index 0000000..dcdfc8d --- /dev/null +++ b/TestAnswerActivity.java @@ -0,0 +1,262 @@ +package com.example.activity; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.view.View; +import android.widget.Chronometer; +import android.widget.Toast; + +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentPagerAdapter; +import androidx.viewpager.widget.ViewPager; + +import com.example.LoveDao; +import com.example.R; +import com.example.bean.QuestBean; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +/** + * 试卷答题 页面 + */ +public class TestAnswerActivity extends BaseActivity implements Chronometer.OnChronometerTickListener { + + @BindView(R.id.vp_answer) + ViewPager vp_answer; + @BindView(R.id._chro_exam) + Chronometer chronometer; + + private Context context; + private ArrayList fragmentlists; + private int minute = 0; + private int second = 0; + private AlertDialog.Builder builder; + private ArrayList titleName; + private int nowpager = 0; + private List messages; + private String kind; + private String num; + + @Override + int getLayoutId() { + return R.layout.activity_test_answer; + } + + @Override + void getPreIntent() { +// 获取传递来的变量 + kind = getIntent().getStringExtra("kind"); + num = getIntent().getStringExtra("num"); + } + + @Override + void initView() { + +// 联网获取数据 + /*initNet();*/ + + vp_answer.setOnPageChangeListener(new MyOnPageChangeListener()); + setChronometer(); + } + + /** + * 设置计时器 + */ + private void setChronometer() { + chronometer.setText(nowtime()); + chronometer.start(); + chronometer.setOnChronometerTickListener(this); + } + + /** + * 计时器规则 + * + * @param chronometer + */ + @Override + public void onChronometerTick(Chronometer chronometer) { + second++; + if (second == 59) { + minute++; + second = 00; + } + } + + /** + * 现在时间 + * + * @return + */ + private String nowtime() { + if (second < 10) { + return (minute + ":0" + second); + } else { + return (minute + ":" + second); + } + } + + /** + * 初始化网络连接 + */ + /* private void initNet() { + titleName = new ArrayList<>(); + fragmentlists = new ArrayList<>(); + LogUtils.e("initNet: 开始联网…………"); + //进度条对话框 + final ProgressDialog progressDialog = new ProgressDialog(TestAnswerActivity.this, R.style.AppTheme_Dark_Dialog); + progressDialog.setIndeterminate(true); + progressDialog.setMessage("获取题目中..."); + progressDialog.show(); +// 联网 + OkGo.get(Config.URL_GET_TEST_QUESTION) + .params("kind", kind) + .params("number", num) + .execute(new StringCallback() { + @Override + public void onSuccess(String s, Call call, Response response) { + LogUtils.e("onSuccess: ========---------======" + s); + //gson解析 + Gson gson = new Gson(); + JsonQuestBean jsonQuestBean = gson.fromJson(s, JsonQuestBean.class); + messages = jsonQuestBean.getMessages(); + for (int i = 0; i < messages.size(); i++) { + QuestBean questBeanQ = messages.get(i); + questBeanQ.setId(i); + fragmentlists.add(new AnswerFragment(questBeanQ)); + LoveDao.insertLove(questBeanQ); + titleName.add(questBeanQ.getId() + ""); + LogUtils.e(i + " onSuccess : " + questBeanQ.getId() + questBeanQ.getTitle()); + } +// 设置适配器 + vp_answer.setAdapter(new MainAdapter(getSupportFragmentManager())); + progressDialog.dismiss(); + } + + @Override + public void onError(Call call, Response response, Exception e) { + LogUtils.e("onError "); + } + }); + }*/ + + + @OnClick({R.id._btn_previous, R.id._btn_submit, R.id._btn_next}) + public void onViewClicked(View view) { + switch (view.getId()) { +// 点击上一题按钮 + case R.id._btn_previous: +// 如果是第一题,则谈吐司提醒,否则上移一道题 + if (nowpager == 0) { + Toast.makeText(context, "已经到头啦",Toast.LENGTH_SHORT).show(); + } else { + vp_answer.setCurrentItem(--nowpager); + } + break; +// 点击提交按钮 + case R.id._btn_submit: +// 否则初始化并展示提交对话框 + initAlertDialog(); + builder.show(); + break; +// 点击下一题按钮 + case R.id._btn_next: +// 如果是最后一题,则谈吐司提醒,否则下移一道题 + if (nowpager == fragmentlists.size()) { + Toast.makeText(context, "已经是最后一题了",Toast.LENGTH_SHORT).show(); + } else { + vp_answer.setCurrentItem(++nowpager); + } + break; + + } + } + + /** + * viewpager适配器 + */ + class MainAdapter extends FragmentPagerAdapter { + + public MainAdapter(FragmentManager fm) { + super(fm); + } + + + //获取条目 + @Override + public Fragment getItem(int position) { + return fragmentlists.get(position); + } + + //数目 + @Override + public int getCount() { + return fragmentlists.size(); + } + } + + + // 弹出是否确认交卷的对话框 + private void initAlertDialog() { + //新建对话框 + builder = new AlertDialog.Builder(TestAnswerActivity.this); + builder.setTitle("提示"); + builder.setMessage("是否确定交卷?"); + builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { +// 计算分数 + int grade = 0; +// 判断题 + for (int i = 0; i < messages.size(); i++) { +// 查询Integer.toString(Integer.parseInt(a.get(i))) + QuestBean questBeenA = LoveDao.queryLove(Integer.toString(Integer.parseInt(titleName.get(i)))); +// 判断 + if (questBeenA.getAnswer().equals(questBeenA.getMyanswer())) { + grade += 100 / (Integer.parseInt(num)); + } else if (questBeenA.getAnswer().equals("对") && questBeenA.getMyanswer().equals("A") || questBeenA.getAnswer().equals("错") && questBeenA.getMyanswer().equals("B")) { + grade += 100 / (Integer.parseInt(num)); + } + } + +// 传递分数 + Intent intent = new Intent(TestAnswerActivity.this, com.example.activity.TestGradeActivity.class); + intent.putExtra("grade", "" + grade); +// 传递题目列表 + intent.putStringArrayListExtra("timu", titleName); + intent.putExtra("time", nowtime()); + intent.putExtra("kind", kind); + intent.putExtra("num", num); + startActivity(intent); + finish(); + } + + }); + builder.setNegativeButton("取消", null); + } + + /** + * viewpager监听事件 + */ + private class MyOnPageChangeListener implements ViewPager.OnPageChangeListener { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + } + + @Override + public void onPageSelected(int position) { + nowpager = position; + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + } +}