Android与MVC设计模式相关操作
指导教材: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设计模式相关操作相关推荐
- Android与MVC设计模式
Android与MVC设计模式 写在前面,之前做过一段时间移动开发,后来因为工作原因搁浅了,最新重新拿起Android权威编程指南学习,顺道做个学习笔记. 首先呢,我想说无论是计算机科班出身还是培训班 ...
- android日历信息获取错误,flutter对android的日历数据相关操作
系统日历 三个不同URL的作用 每个url通过contentProvider能获得对应数据库的访问句柄,所以可以理解三个url对应三个数据库,如果通过一个事件关联3个库呢,下面会详细介绍. 数据库介绍 ...
- android mvc使用方法,详细学习android mvc设计模式教程
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 web 应用程序的模式.其分层有助于管理复杂的应用程序,因为可以在一个时间内专门关注一个方面.例如 ...
- java_web:基于mvc设计模式实现用户登录操作
基于mvc设计模式实现用户登录操作 知识点补充:mvc理论知识 应用实例:创建一个jsp页面login,将其表单数据发送到类LoginServlet中,在该类调用类LoginDao实现用户登录操作. ...
- 【Android APT】注解处理器 ( Element 注解节点相关操作 )
文章目录 一.获取被 注解 标注的节点 二.Element 注解节点类型 三.VariableElement 注解节点相关操作 四.注解处理器 完整代码示例 五.博客资源 Android APT 学习 ...
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
这里总结下android中关于手机屏幕的相关操作: 1.获取屏幕的分辨率(因为android中处理显示的时候,需要根据屏幕分辨率的不同才去不同的布局或显示不同的素材) <uses-sdk and ...
- 数据库相关(JDBC,存储过程,以及大文本数据处理,mvc设计模式)
目录 1.jdbc总结(模板.八股文): 2.CallableStatement:调用 存储过程.存储函数 3.1JDBC调用存储过程的步骤: 3.2调存储函数: 3.处理CLOB/BLOB类型 4. ...
- Android控制WIFI相关操作
Android控制WIFI相关操作 在XML文件中添加权限: <uses-permission android:name="android.permission.ACCESS_WIFI ...
- android 控制wifi模块,Android 控制wifi 相关操作实例
Android 控制WIFI相关操作 WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s. 实际上,对WIFI并不需要过 ...
最新文章
- IDEA新建一个多maven模块工程(有图)
- php读取数组修改内容,php 数组如何修改值
- jQuery.merge与concat的区别
- 俄罗斯方块android论文,基于Android的俄罗斯方块游戏设计与实现(论文+任务书+答辩PPT+设计源码)...
- RabbitMQ,RabbitMQ 的工作模式,Spring 整合 RabbitMQ,Springboot 整合RabbitMQ
- AMD EPYC——CPU命名规则
- 好枪手是靠子弹喂出来的,好分析师是靠大量项目沉淀出来的
- pl/sql查询表数据,报错ORA-03115:不支持的网络数据类型或表示法
- php打开rs232,php_ser_5.2.0-5.2.17
- WeUI 为微信 Web 服务量身设计-h5前端框架
- Pytorch中 .numpy() .item() .cpu() 区别
- arm-linux-gcc /lib/libc.so.6,链接器 – 找不到/lib/libc.so.6
- 编程语言python怎么读-网红编程语言Python将纳入高考你怎么看?
- Windows路由表详解与双网卡访问慢问题解决
- Linux系统查看CPU个数超线程线程数
- 从韩春雨事件看学术成果的辨别
- C语言ALG什么文件,alg.exe是什么进程文件?如何删除alg病毒?
- android inflate 方法,Android LayoutInflater中 Inflate()方法应用
- 第5章-构建Spring Web应用程序
- oracle有条件执行插入语句
热门文章
- 一名中专生的坎坷程序人生
- Oracle SQL Developer安装教程
- win11使用移动硬盘(固态非固态)卡顿问题解决
- 利用水文分析提取山脊线山谷线
- ​​商朝是广西骆越人北上建立的政权,是骆越文化的延续
- c语言 fgetc函数,C 库函数 – fgetc()
- 3D视觉笔记(1) - 双目视觉三维测量原理
- resulful规范_ResultFul API
- 如何用TI Unifalsh烧录程序到CC3200 Launchpad
- 强化学习笔记: Model-based Approaches(1)