Toast
Toast是在android中非常好的一种提醒方式。在程序中可以用它将一些短小的信息通知给用户,这些信息它可以在一秒或者两秒以后消失,时间可以自己选。也就是可以用来提醒登录成功,登录失败之类的信息提醒,下面我们来用一个具体的例子。
首先需要定义一个Toast触发点,我们让点击按钮时触发这个事件,那么我们就在监听方法中定义
Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT);
Intent intent = new Intent(MainActivity.this, EditTextActivity.class);
startActivity(intent);
我设置的是点击登录按钮之后,除法Toast事件
然后。。我上面的那个代码就错了,因为漏了一个show方法,正确的代码应该是
public void onClick(View v) {
Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, EditTextActivity.class);
startActivity(intent);
}
这个时候就会跳出这种小信息。
通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来就可以了,所需要传入的三个参数分别是context对象,第二个是所需要显示的参数,第三个是所需要显示的时间
Menu
可能在很多Activity中需要很多菜单,但是在activity中同时创建很多菜单的话又很占用空间,毕竟手机屏幕尺寸有限,所以为了合理化的空出空间,我们可以在活动中使用Menu,下面我们先举个栗子看看用Menu会有怎样的效果。
那我们来看看具体的代码实现
首先先在app\src\res中先新建一个Direcrtory
然后右击Menu文件夹->New->Menu resoure file,然后点击OK完成创建,然后在main.xml中添加代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id = "@+id/add_friend"
android:title = "添加好友"/>
<item android:id="@+id/scan"
android:title="扫一扫"/>
<item android:id="@+id/pay"
android:title="收付款"/>
<item android:id="@+id/help"
android:title="帮助与反馈"/>
</menu>
这里我们创建了四个菜单项目,其中item标签就是用来创建具体的某一个菜单项,然后通过android:id给这个菜单项制定一个唯一的标识符,通过title给他一个名称,也就是“扫一扫”“添加好友”
然后回到MainActivity中重写onCreateOptionsMenus()方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
通过getMenuInflater()方法能够得到MenuInflater对象,再调用它的inflater()方法就可以给当前活动创建菜单了,inflater方法接收两个参数,第一个参数用来指定菜单的位置,第二个用于指定我们的菜单项需要添加到哪一个Menu对象当中,返回true则是是否显示菜单
这个时候仅仅是显示菜单当然是不够的,我们需要菜单能够响应,那这个时候还需要在MainActivity中重写onOptionsItemSelected()方法
我在代码中用到了Toast弹出点击事件,点击以后弹出你已经点击此菜单
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.add_friend:
Toast.makeText(this,"添加朋友",Toast.LENGTH_SHORT).show();
break;
case R.id.scan:
Toast.makeText(this,"扫一扫",Toast.LENGTH_SHORT).show();
break;
case R.id.help:
Toast.makeText(this,"帮助与反馈",Toast.LENGTH_SHORT).show();
break;
case R.id.pay:
Toast.makeText(this,"收付款",Toast.LENGTH_SHORT).show();
break;
}
return true;
}
然后我们来看看效果
上面是我模仿微信的菜单
点击以后的效果
点击了收付款以后的效果
以上。