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