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) { } } }