iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android studio实现简单考试应用程序
  • 538
分享到

android studio实现简单考试应用程序

AndroidStudiostudio程序应用程序Android 2022-06-06 13:06:49 538人浏览 独家记忆
摘要

一、问题 1、如图所示,设计一个包含四种题型的简单考试应用程序(具体考试题目可以选用以下设计,也可以自己另外确定),项目名称:zuoye06_666 ;(666,改成自己的实际

一、问题

1、如图所示,设计一个包含四种题型的简单考试应用程序(具体考试题目可以选用以下设计,也可以自己另外确定),项目名称:zuoye06_666 ;(666,改成自己的实际编号)。

2、布局管理器任选(约束布局相对容易实现)。

3、“提交”按钮的Text通过字符串资源赋值,不要直接输入“提交”两个字。

4、每题按25分计算,编写相应的程序,答题完成后单击“提交”按钮,在“总得分:”右边文本框中显示实际得分;同时,显示一个Toast消息框:

    答对不足3题,显示:“还需努力啊!”;

    答对3题,显示:“祝贺你通过考试!”;

    全部答对,显示:“你真棒!祝贺你!”

二、分析

1.这次作业比较简单,就是上课讲的东西的集合,练习spinner、checkbox、radiobutton、edittext以及button的监听,还有setText和Toast用法。

2.注意点,要考虑到正常考试的时候学生第一次选对后来改错,或者一开始选错后来改对的情况,考生的分数应该由最后一次监听到结果来确定,所以添加了boolean类型的以及checkbox的计数。

  三、代码

1.布局代码



    

2.strings.xml



    zuoye06_231
    年11月5日,Google发布安卓系统(答:2007)
    Android操作系统是(答:开源的)
    Android Studio 开发Android程序,还需安装:(1、3)
    Android是基于?平台手机的操作系统(linux)
    提交

3.Systems.xml



        windows
        Linux
        Mac

4.java代码


package com.example.lenovo.zuoye06_231;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.CompoundButton;
public class MainActivity extends AppCompatActivity {
    static int i = 0,cb_num = 0;
    boolean  rd_num = false,sp_num = false,et_num = false;
    TextView sorce;
    TextView et_on;
    RadioGroup rd;
    Button button;
    CheckBox checkBox1;
    CheckBox checkBox2;
    CheckBox checkBox3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //定义
        et_on = findViewById(R.id.et_on);
        sorce = findViewById(R.id.sorce);
        rd = findViewById(R.id.radioGroup);
        button = findViewById(R.id.button);
        checkBox1 = findViewById(R.id.cb1);
        checkBox2 = findViewById(R.id.cb2);
        checkBox3 = findViewById(R.id.cb3);
        //为每个复选按钮设置状态改变监听器
        checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub
                if(isChecked)   cb_num++;
                else    cb_num--;
            }
        });
        checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub
                if(isChecked)   cb_num--;
                else    cb_num++;
            }
        });
        checkBox3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub
                if(isChecked)   cb_num++;
                else    cb_num--;
            }
        });
        //设置单选按钮组添加事件监听
        rd.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                //获取被选择的单选按钮
                RadioButton r = (RadioButton) findViewById(checkedId);
                if(r.getText().equals("开源的"))   rd_num = true;
                else    rd_num = false;
            }
        });
        //edittext监听
        et_on.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                if(et_on.getText().toString().equals("2007"))   et_num = true;
                else    et_num = false;
                return false;
            }
        });
        //获取下拉列表对象
        final Spinner spinner = (Spinner) findViewById(R.id.spinner);
        //为Spinner添加选择监听器
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            //数据选择事件处理
            public void onItemSelected(AdapterView parent, View view, int pos, long id) {
                String[] Systems = getResources().getStringArray(R.array.Systems);
                //显示选择结果
                if(Systems[pos].equals("Linux"))   sp_num = true;
                else    sp_num = false;
            }
           //以下方法重写必须有
            @Override
            public void onNothingSelected(AdapterView parent) {
                // Another interface callback
            }
        });
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(cb_num == 2) i++;
                if(sp_num)  i++;
                if(et_num)  i++;
                if(rd_num)  i++;
                sorce.setText("         "+(i*25)+"         ");
                if(i == 4)
                    Toast.makeText(MainActivity.this,"你真棒!祝贺你!", Toast.LENGTH_SHORT).show();
                else if(i == 3)
                    Toast.makeText(MainActivity.this,"祝贺你通过考试!", Toast.LENGTH_SHORT).show();
                else
                    Toast.makeText(MainActivity.this,"还需努力啊!", Toast.LENGTH_SHORT).show();
            }
        });
    }
}
  四、结论

1.当用户填写的时候最终答案是按最后修改的来确定的。

2.考虑到正常情况下当用户提交后数据已经上传到网络上,所以没有添加不能二次修改的代码,因此测试的时候会出现第一次提交后不退出,修改后结果会出问题。

五、参考文章 3.29更新

如果想要解决不能2次修改问题可以加一个状态标志符。

如果想要解决二次提交后累加的问题,可以在Toast后加一个i=0。


作者:是抹茶味的啊


--结束END--

本文标题: android studio实现简单考试应用程序

本文链接: https://www.lsjlt.com/news/29334.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作