日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

android studio實現簡單考試應用程序實例代碼詳解

瀏覽:21日期:2022-09-25 09:20:52

一、問題

1、如圖所示,設計一個包含四種題型的簡單考試應用程序(具體考試題目可以選用以下設計,也可以自己另外確定),項目名稱:zuoye06_666 ;(666,改成自己的實際編號)。

2、布局管理器任選(約束布局相對容易實現)。

3、“提交”按鈕的Text通過字符串資源賦值,不要直接輸入“提交”兩個字。

4、每題按25分計算,編寫相應的程序,答題完成后單擊“提交”按鈕,在“總得分:”右邊文本框中顯示實際得分;同時,顯示一個Toast消息框:

答對不足3題,顯示:“還需努力啊!”;

答對3題,顯示:“祝賀你通過考試!”;

全部答對,顯示:“你真棒!祝賀你!”

android studio實現簡單考試應用程序實例代碼詳解

二、分析

1.這次作業比較簡單,就是上課講的東西的集合,練習spinner、checkbox、radiobutton、edittext以及button的監聽,還有setText和Toast用法。

2.注意點,要考慮到正常考試的時候學生第一次選對后來改錯,或者一開始選錯后來改對的情況,考生的分數應該由最后一次監聽到結果來確定,所以添加了boolean類型的以及checkbox的計數。

三、代碼

1.布局代碼

<?xml version='1.0' encoding='utf-8'?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' tools:context='.MainActivity'> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:text='Android基礎知識測評' app:layout_constraintBottom_toBottomOf='parent' app:layout_constraintHorizontal_bias='0.498' app:layout_constraintLeft_toLeftOf='parent' app:layout_constraintRight_toRightOf='parent' app:layout_constraintTop_toTopOf='parent' app:layout_constraintVertical_bias='0.058' /> <EditText android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginStart='16dp' android:ems='3' android:inputType='textPersonName' app:layout_constraintBottom_toBottomOf='@+id/textView' app:layout_constraintStart_toStartOf='parent' app:layout_constraintTop_toTopOf='@+id/textView' app:layout_constraintVertical_bias='0.615' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginTop='20dp' android:text='@string/di1ti' app:layout_constraintStart_toEndOf='@+id/et_on' app:layout_constraintTop_toBottomOf='@+id/textView2' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginTop='20dp' android:text='@string/di2ti' app:layout_constraintStart_toStartOf='@+id/et_on' app:layout_constraintTop_toBottomOf='@+id/textView' /> <RadioGroup android: android:layout_width='113dp' android:layout_height='64dp' app:layout_constraintStart_toStartOf='@+id/textView3' app:layout_constraintTop_toBottomOf='@+id/textView3'> <RadioButton android: android:layout_width='match_parent' android:layout_height='wrap_content' android:text='開源的' /> <RadioButton android: android:layout_width='match_parent' android:layout_height='wrap_content' android:text='非開源的' /> </RadioGroup> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginTop='20dp' android:text='@string/di3ti' app:layout_constraintStart_toStartOf='@+id/textView3' app:layout_constraintTop_toBottomOf='@+id/radioGroup' /> <CheckBox android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginStart='60dp' android:text='JAVA' app:layout_constraintStart_toEndOf='@+id/cb1' app:layout_constraintTop_toBottomOf='@+id/textView4' /> <CheckBox android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:text='JDK' app:layout_constraintStart_toStartOf='@+id/textView4' app:layout_constraintTop_toBottomOf='@+id/textView4' /> <CheckBox android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginStart='60dp' android:text='SDK' app:layout_constraintStart_toEndOf='@+id/cb2' app:layout_constraintTop_toBottomOf='@+id/textView4' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginTop='20dp' android:text='@string/di4ti' app:layout_constraintStart_toStartOf='@+id/textView4' app:layout_constraintTop_toBottomOf='@+id/cb1' /> <Spinner android: android:layout_width='130dp' android:layout_height='30dp' android:entries='@array/Systems' app:layout_constraintStart_toStartOf='@+id/textView5' app:layout_constraintTop_toBottomOf='@+id/textView5' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginStart='104dp' android:layout_marginBottom='36dp' android:text='總得分:' app:layout_constraintBottom_toTopOf='@+id/button' app:layout_constraintStart_toStartOf='parent' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:background='#F1ED06' android:text=' 00 ' app:layout_constraintBottom_toBottomOf='@+id/textView6' app:layout_constraintEnd_toEndOf='parent' app:layout_constraintHorizontal_bias='0.025' app:layout_constraintStart_toEndOf='@+id/textView6' app:layout_constraintTop_toTopOf='@+id/textView6' app:layout_constraintVertical_bias='0.0' /> <Button android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginBottom='20dp' android:text='@string/subscribe' app:layout_constraintBottom_toBottomOf='parent' app:layout_constraintEnd_toEndOf='parent' app:layout_constraintStart_toStartOf='parent' /> </androidx.constraintlayout.widget.ConstraintLayout>

2.strings.xml

<resources> <string name='app_name'>zuoye06_231</string> <string name='di1ti'>年11月5日,Google發布安卓系統(答:2007)</string> <string name='di2ti'>Android操作系統是(答:開源的)</string> <string name='di3ti'>Android Studio 開發Android程序,還需安裝:(1、3)</string> <string name='di4ti'>Android是基于?平臺手機的操作系統(Linux)</string> <string name='subscribe'>提交</string></resources>

3.Systems.xml

<?xml version='1.0' encoding='utf-8'?><resources> <string-array name='Systems'> <item>Windows</item> <item>Linux</item> <item>Mac</item> </string-array></resources>

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。

到此這篇關于android studio實現簡單考試應用程序的文章就介紹到這了,更多相關android studio實現 考試應用程序內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免播放器亚洲| 最新国产精品视频| 老鸭窝亚洲一区二区三区| 麻豆国产91在线播放| 久久精品1区| 久久精品青草| 美女精品一区二区| 亚洲欧美高清| 久久精品超碰| 国产成人免费视频网站视频社区| 久久精品国产免费| 久久九九精品| 视频在线在亚洲| 国产欧美88| 久久狠狠婷婷| 亚洲精品一区二区在线播放∴| 视频国产精品| 国产suv精品一区二区四区视频| 精品成人18| 久久久精品国产**网站| 国产拍在线视频| 先锋亚洲精品| 国产一区不卡| 亚洲午夜国产成人| 国产一区二区三区四区五区| 欧美福利在线| 麻豆91小视频| 免费人成黄页网站在线一区二区| 国产高清亚洲| 免费在线观看不卡| 天堂av在线| 日韩精品一级| 亚洲二区三区不卡| 美女久久久久久 | 999在线观看精品免费不卡网站| 日韩av网站在线免费观看| 久久精品伊人| 精品入口麻豆88视频| 亚洲成人va| 国产h片在线观看| 国产麻豆一区二区三区精品视频| 久久亚洲不卡| 国产剧情在线观看一区| 久久久夜精品| 国产精品99一区二区| 蜜臀久久久99精品久久久久久| 中文在线日韩| 亚洲最大av| 国产一区成人| 麻豆精品视频在线观看视频| 电影亚洲精品噜噜在线观看| 日韩精品一卡| 69精品国产久热在线观看| 日韩精品视频在线看| 日本不卡一二三区黄网| 日本va欧美va精品| 欧美日韩xxxx| 精品国产不卡| 97久久亚洲| 模特精品在线| 国产一区二区三区不卡av| 久久97视频| 国产精品自拍区| 高清不卡亚洲| 国产一区二区三区久久| 日韩国产在线| 色综合www| 精品国产亚洲日本| 狠狠久久伊人| 日本精品另类| 欧美日韩一区二区高清| 婷婷综合成人| 欧美日本久久| 亚洲区国产区| 伊人久久婷婷| 国产乱子精品一区二区在线观看| 亚洲精品乱码| 亚洲午夜电影| 中文字幕在线视频网站| 最新国产精品| 日韩av一区二区在线影视| 久久97视频| 久久精选视频| 日韩精品福利一区二区三区| 青草综合视频| 久久毛片亚洲| 蜜臀精品一区二区三区在线观看| 日韩国产在线不卡视频| 91日韩在线| 日本va欧美va瓶| 四虎影视精品| 国产精品美女久久久久久不卡| 久久av偷拍| 99xxxx成人网| 欧美国产偷国产精品三区| 日本在线视频一区二区| 国产麻豆一区二区三区精品视频| 激情久久久久久久| 日韩和欧美的一区| 麻豆91在线播放| 久久久五月天| 欧美综合另类| 天堂久久一区| 久久高清国产| 亚洲伦乱视频| 国产情侣一区| 日韩一区亚洲二区| 国产精品免费99久久久| 亚洲综合图色| 国产精品网站在线看| 欧美国产极品| 欧美日韩国产高清电影| 蜜臀91精品一区二区三区| 国产拍在线视频| 国产精品久久久久久久久久白浆 | 欧美中文一区二区| 日韩国产欧美三级| 五月天久久777| 精品五月天堂| 91亚洲精品在看在线观看高清| 香蕉久久99| 午夜国产精品视频免费体验区| 精品国产乱码| 日韩黄色在线观看| 丝袜美腿亚洲一区| 国产高清久久| 欧美日韩精品一区二区视频| 国产精品资源| 免费看的黄色欧美网站| 欧美在线亚洲| 免费视频久久| 久久高清国产| 国产中文字幕一区二区三区| 日韩在线播放一区二区| 国产模特精品视频久久久久| 国产精品扒开腿做爽爽爽软件| 免费观看在线综合色| 免费视频一区三区| 午夜国产精品视频| 天堂av在线一区| 日韩动漫一区| 日韩av免费大片| 午夜一级在线看亚洲| 激情综合五月| 精品国产一区二区三区av片| 亚洲欧洲美洲av| 亚洲国产成人精品女人| 中文字幕一区二区三区在线视频| 奇米亚洲欧美| 亚洲一级少妇| 日韩在线a电影| 欧美日一区二区三区在线观看国产免| 欧美日韩一区自拍| 蜜臀国产一区| 午夜在线一区二区| 日本高清久久| 国产中文在线播放| 在线综合视频| 亚洲一区av| 久久99精品久久久野外观看| 国产精品久久久久久久免费观看| 五月天久久网站| 国产精品亚洲四区在线观看| 欧美日韩91| 亚洲深夜av| 日韩福利一区| 久久精品99国产精品| 另类专区亚洲| 国产美女视频一区二区| 一区二区精品伦理...| 日韩在线网址| 欧美日韩中文一区二区| 亚洲一区欧美激情| 欧美精品aa| 四虎国产精品免费久久| 日韩成人亚洲| 精品欧美日韩精品| 日韩精品一二三四| 久久在线免费| 日韩欧美看国产| 精品精品国产三级a∨在线| 在线观看亚洲精品福利片| 偷拍精品精品一区二区三区| 国产精品色婷婷在线观看| 亚洲精品乱码日韩| 私拍精品福利视频在线一区| 欧美日本不卡高清| 国产精品主播| 午夜在线观看免费一区| 久久久一本精品| 国产精品精品| 伊人久久在线| 国际精品欧美精品| 久久狠狠久久| 欧美色综合网| 欧美一区激情| 欧美一级网址| 国产伦一区二区三区| 首页欧美精品中文字幕| 黄色成人91|