文章目录
前言
Android与MVC设计模式
我们将升级GeoQuiz应用,提供更多的地理知识测试题目
一、实验步骤
1.创建新类
在项目工具窗口中,右键单击com.bignerdranch.android.geoquiz类包,选择New → Java Class 菜单项。如图所示,类名处填入Question,然后单击OK按钮。
在Question.java中,新增两个成员变量和一个构造方法
public class Question {
private int mTextResId;
private boolean mAnswerTrue;
public Question(int textResId, boolean answerTrue) {
mTextResId = textResId;
mAnswerTrue = answerTrue;
}
}
2.生成 getter方法与 setter方法
打开Android Studio首选项对话框(Mac用户选择Android Studio菜单,Windows用户选择File → Settings菜单)。依次展开Editor和Code Style选项,在Java选项下选择Code Generation选项页。
在Naming表单的Field一行中,添加m作为前缀,然后添加s作为Static field的前缀.
回到Question.java中,右击构造方法后方区域,选择Generate… → Getter and Setter菜单项。选 择mTextResId和mAnswerTrue,为每个变量都生成getter方法与setter方法。单击OK按钮.
3.新增按钮以及对文本视图的调整
activity_quiz.xml
<LinearLayout... >
<TextView
android:id="@+id/question_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="24dp"
android:text="@string/question_text" />
<LinearLayout ... > ...
</LinearLayout>
<Button
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next_button" />
</LinearLayout>
4.更新字符串资源定义
strings.xml
<string name="app_name">GeoQuiz</string>
<string name="question_australia">Canberra is the capital of Australia.</string>
<string name="true_button">True</string>
<string name="false_button">False</string>
<string name="next_button">Next</string>
<string na