指导教材:Android编程权威指南

本教程为第二章操作

由于参考书上好多地方都是先敲代码上去,最后又删掉,所以本人就直接发布完整代码,可对第一章代码进行添加,也可直接粘贴本人敲好的代码,节约时间。书上有些步骤我就省略了,如需观看完整步骤,请扫码下载Android编程指南。


接下来进入正题。

1.创建新类

 在项目工具窗口中,右键单击com.example.a1c_b7_2c_38_5f_8a042类包,选择Nex——Java Class,命名为Question,然后点OK按钮。


Question.Java代码如下

public class Question {private int mTextResId;private boolean mAnswerTrue;public boolean isAnswerTrue() {return mAnswerTrue;}public void setAnswerTrue(boolean answerTrue) {mAnswerTrue = answerTrue;}public int getTextResId() {return mTextResId;}public void setTextResId(int textResId) {mTextResId = textResId;}public Question(int textResId, boolean answerTrue) {mTextResId = textResId;mAnswerTrue = answerTrue;}
}


同时也可以只用敲一部分,然后生成getter方法和setter方法
操作:File——Setting,依次展开Editor和Code Style选项,在Java选项下选择Code Generation选项,添加如下内容。

方框里为必须敲的


设置好后,回到Question.Java中,右击构造方法区,选择Generate——Getter and Setter,选择mTextResId和mAnswerTrue,为每个变量都生成getter方法和setter方法,单击OK。显示的代码如下

2.Android 与 MVC 设计模式及更新新图层

对activity_main.xml进行操作
完整代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical" ><TextViewandroid:id="@+id/question_text_view"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="24dp" /><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/true_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/true_button" /><Buttonandroid:id="@+id/false_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/false_button" /></LinearLayout><Buttonandroid:id="@+id/next_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/next_button" /></LinearLayout>

如以做过第一章操作,只需添加如下代码到所在位置即可

android:id="@+id/question_text_view"<Buttonandroid:id="@+id/next_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/next_button" />


3.更新控制层

对MainActivity.Java进行修改

完整代码如下:

import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private Button mTrueButton;private Button mFalseButton;private Button mNextButton;private TextView mQuestionTextView;private Question[] mQuestionBank = new Question[] {new Question(R.string.question_australia,true),new Question(R.string.question_oceans,true),new Question(R.string.question_mideast,false),new Question(R.string.question_africa,false),new Question(R.string.question_americas,true),new Question(R.string.question_asia,true)};private int mCurrentIndex = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mQuestionTextView = (TextView) findViewById(R.id.question_text_view);mTrueButton = (Button) findViewById(R.id.true_button);mTrueButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {checkAnsewer(true);}});mFalseButton = (Button) findViewById(R.id.false_button);mFalseButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {checkAnsewer(false);}});mNextButton = (Button) findViewById(R.id.next_button);mNextButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length;updateQuestion();}});updateQuestion();}private void updateQuestion() {int question = mQuestionBank[mCurrentIndex].getTextResId();mQuestionTextView.setText(question);}private void checkAnsewer(boolean userPressedTrue) {boolean answerIsTrue = mQuestionBank[mCurrentIndex].isAnswerTrue();int messageResId = 0;if (userPressedTrue == answerIsTrue) {messageResId = R.string.correct_toast;} else {messageResId = R.string.incorrect_toast;}Toast.makeText(this,messageResId, Toast.LENGTH_SHORT).show();}
}

strings.xml 修改

<resources><string name="app_name">1C-B7-2C-38-5F-8A 04 2</string><string name="question_australia">Ganberra is the capital of Australia.</string><string name="question_oceans">The Pacific Ocean is larger thanthe Atlantic Ocean.</string><string name="question_mideast">The Suez Canal connects the Red Seaand the Indian Ocean.</string><string name="question_africa">The source of the Nile River is in Egypt.</string><string name="question_americas">The Amazon River is the longest riverin the Americas.</string><string name="question_asia">Lake Baikal is the world\'s oldest and deepestfreshwater lake.</string><string name="true_button"> TRUE</string><string name="false_button">FALSE</string><string name="correct_toast">Correct!</string><string name="incorrect_toast">Incorrect!</string><string name="next_button">NEXT</string>
</resources>

修改的位置大概为以下位置,如有出入,请自行对照

本人建议用完整代码,免得看到眼花




4.模拟机测试

按下新增按钮就会改变输出
如下:





5.手机测试

操作就省略了,如需请看本人第一个博客。
测试结果扫码观看

Android与MVC设计模式相关操作相关推荐

  1. Android与MVC设计模式

    Android与MVC设计模式 写在前面,之前做过一段时间移动开发,后来因为工作原因搁浅了,最新重新拿起Android权威编程指南学习,顺道做个学习笔记. 首先呢,我想说无论是计算机科班出身还是培训班 ...

  2. android日历信息获取错误,flutter对android的日历数据相关操作

    系统日历 三个不同URL的作用 每个url通过contentProvider能获得对应数据库的访问句柄,所以可以理解三个url对应三个数据库,如果通过一个事件关联3个库呢,下面会详细介绍. 数据库介绍 ...

  3. android mvc使用方法,详细学习android mvc设计模式教程

    MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 web 应用程序的模式.其分层有助于管理复杂的应用程序,因为可以在一个时间内专门关注一个方面.例如 ...

  4. java_web:基于mvc设计模式实现用户登录操作

    基于mvc设计模式实现用户登录操作 知识点补充:mvc理论知识 应用实例:创建一个jsp页面login,将其表单数据发送到类LoginServlet中,在该类调用类LoginDao实现用户登录操作. ...

  5. 【Android APT】注解处理器 ( Element 注解节点相关操作 )

    文章目录 一.获取被 注解 标注的节点 二.Element 注解节点类型 三.VariableElement 注解节点相关操作 四.注解处理器 完整代码示例 五.博客资源 Android APT 学习 ...

  6. android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)

    这里总结下android中关于手机屏幕的相关操作: 1.获取屏幕的分辨率(因为android中处理显示的时候,需要根据屏幕分辨率的不同才去不同的布局或显示不同的素材) <uses-sdk and ...

  7. 数据库相关(JDBC,存储过程,以及大文本数据处理,mvc设计模式)

    目录 1.jdbc总结(模板.八股文): 2.CallableStatement:调用 存储过程.存储函数 3.1JDBC调用存储过程的步骤: 3.2调存储函数: 3.处理CLOB/BLOB类型 4. ...

  8. Android控制WIFI相关操作

    Android控制WIFI相关操作 在XML文件中添加权限: <uses-permission android:name="android.permission.ACCESS_WIFI ...

  9. android 控制wifi模块,Android 控制wifi 相关操作实例

    Android 控制WIFI相关操作 WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s. 实际上,对WIFI并不需要过 ...

最新文章

  1. 二叉树线索化示意图_103-线索化二叉树思路图解
  2. 【译】特征工程最佳实践
  3. 找到合适的方案记录服务端日志
  4. 共享一个简单的 Javacript Helper library
  5. 红米android 版本,#MIUI#关于红米手机4高配版 Android版本适配的说明【miui9吧】_百度贴吧...
  6. JavaScript基础学习--05自定义属性、索引值
  7. fmin在Matlab中,MATLAB-fminsearch函数的使用
  8. 苹果再遭炮轰;ofo 收购哈罗?华为推可折叠 5G 手机 | 极客头条
  9. Mysql源码编译安装主从复制
  10. android小小的开发细节
  11. 跟我学习dubbo-简介(1)
  12. 文件查找工具Everything的使用技巧
  13. IE9环境下。LODOP打印,首次打印时,图片加载不出来、加载不完全问题
  14. Hark的数据结构与算法练习之归并排序
  15. 拓扑家族的“新贵”——管理型网络拓扑
  16. 线程wait和notify深入学习和分析
  17. Android 问题:Installation failed due to: ‘Invalid File:
  18. 复杂SQL语句练习【III】
  19. windows函数(system)
  20. 卟啉基聚酰亚胺(PPBPIs);交联型卟啉基聚酰亚胺的合成(PPBPI-CRs)齐岳生物供应卟啉产品

热门文章

  1. 008九九乘法表(详解)
  2. 第十六篇 晶体管之电流放大器
  3. 图像质量评价指标FID、LPIPS、NIQE及其代码
  4. App应用字体大小保持固定以及关于Configuration的变化
  5. 关于rem移动端 html字体大小自适应设置的问题
  6. Java SE java基础 求营业额
  7. (软件构造) 关于JDK版本更换问题(附jdk下载链接以及jdk环境变量全教程)
  8. 算法(赛马问题)图解
  9. 豆角炒肉 肉末豆腐
  10. 《预训练周刊》第66期:智源2022大模型创新论坛、 ChatGPT手把手debug代码、AI与物理的交融...