1.Toast
Toast是Android系统提供的一种非常好的提醒方式,在屏幕中间可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕控件
新创一个Activity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#d8e0e8">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="发射到美利坚"/>
</LinearLayout>
首先定义一个弹出Toast的触发点,在界面上设置一个按钮,然后我们点击这个按钮作为弹出Toast的触发点,在Oncreate方法中添加以下代码
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
/*val button1 : Button = findViewById(R.id.button1)*/
button1.setOnClickListener {
Toast.makeText(this,"白宫已被锁定",Toast.LENGTH_SHORT).show()
}
}
}
(在Activity中,可以通过findViewById方法获取在布局文件中定义的元素,除此之外还可以在app/gradle文件的头部引入一个kotlin-android-extensions插件,这个插件会根据布局文件定义的控件id自动生成一个具有相同名称的变量,然后再Activity里面就可以直接使用这个变量而不用在调用findViewById方法)
Toast通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来就可以。makeText()方法需要传人3个参数。第一个参数是Context,也就是Toast要求的上下文,由于Activity本身就是一个Context对象,因此这里直接传入this即可。第二个参数是Toast显示id文本内容。第三个是Toast显示的时长,这里有两个内置常量可以选择LENGTH_SHORT和LENGTH_LONG
运行程序看一下效果
效果非常好
2.Menu
手机的屏幕非常有限,如果Activity里面有大量的菜单需要显示,界面就会不够使用。Android提供了一种方式可以让菜单都得到展示还不占用任何屏幕空间。
在res目录下创建一个menu文件夹,右击res目录->new->Directory,输入文件夹名"menu",点击ok,接着在这个文件夹下创建一个名叫main的菜单文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_item"
android:title="添加发射对象"/>
<item
android:id="@+id/remove_item"
android:title="移除发射对象"/>
<item
android:id="@+id/update_item"
android:title="修改打击对象"/>
<item
android:id="@+id/select_item"
android:title="搜索发射对象"/>
</menu>
在这里,<item>标签用来创建具体的某一个菜单项,然后通过android:id给这个菜单指定一个唯一的标识符。
返回Activity重写onCreateOptionsMenu方法
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.main,menu)
return true
}
然后给每一个item添加一个响应事件onOptionsItemSelected
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId){
R.id.add_item -> Toast.makeText(this,"You click add_item",Toast.LENGTH_SHORT).show()
R.id.remove_item -> Toast.makeText(this,"You click remove_item",Toast.LENGTH_SHORT).show()
R.id.update_item -> Toast.makeText(this,"You click update_item",Toast.LENGTH_SHORT).show()
R.id.select_item -> Toast.makeText(this,"You click select_item",Toast.LENGTH_SHORT).show()
}
return true
}