1.7 创建提示消息
接下来要实现的是,分别点击两个按钮,弹出我们称之为toast的提示消息。Android的toast是用来通知用户的简短弹出消息,用户无须输入什么,也不用做任何干预操作。这里,我们要用toast来反馈答案,如图1-17所示。
图1-17 toast消息反馈
首先回到strings.xml文件,如代码清单1-10所示,为toast添加消息显示用的字符串资源。
代码清单1-10 增加toast字符串(res/values/strings.xml)
<resources>
<string name="app_name">GeoQuiz</string>
<string name="question_text">Canberra is the capital of Australia.</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>
</resources>
接下来更新监听器代码以创建并展示toast消息。输入代码时可利用Android Studio的代码自动补全功能,这可以节省大量时间,所以越早熟悉它的使用越好。
参照代码清单1-11,在MainActivity.kt文件中依次输入代码。当输入到Toast类后的点号时,Android Studio会弹出一个窗口,给出建议使用的Toast类的常量与函数。
可以使用上下键进行选择。(如果不想使用代码自动补全功能,请不要按Tab键、Return/Enter键,或用鼠标点击弹出窗口,只管继续输入代码直至完成。)
在建议列表里,选择makeText(context: Context, resId: Int, duration: Int),代码自动补全功能会自动添加完整的函数调用。
完成makeText(...)函数的全部参数设置,完成后的代码如代码清单1-11所示。
代码清单1-11 创建提示消息(MainActivity.kt)
override fun onCreate(savedInstanceState: Bundle?) { ... trueButton.setOnClickListener { view: View ->// Do something in response to the click hereToast.makeText( this, R.string.correct_toast, Toast.LENGTH_SHORT) .show() } falseButton.setOnClickListener { view: View ->// Do something in response to the click hereToast.makeText( this, R.string.incorrect_toast, Toast.LENGTH_SHORT) .show() } }
为了创建toast,我们调用了Toast.makeText(Context!, Int, Int)静态函数。该函数会创建并配置Toast对象。该函数的Context参数通常是Activity的一个实例(Activity本身就是Context的子类)。这里,我们传入MainActivity作为Context值参。
第二个参数是toast要显示字符串消息的资源ID。Toast类必须借助Context才能找到并使用字符串资源ID。第三个参数通常是两个Toast常量中的一个,用来指定toast消息的停留时间。
创建toast后,可调用Toast.show()在屏幕上显示toast消息。
由于使用了代码自动补全功能,因此你就不用自己导入Toast类了,Android Studio会自动导入相关类。
好了,现在可以运行应用了。