Activity应该知道的一切(2)

    在Activity应该知道的一切(1)中简单的了解了一下Activity的概念和方法,接下来继续深入学习Activity!

    1、充分利用界面-菜单Menu的使用

    手机屏幕的大小毕竟有限,因此充分的使用界面进行操作就显得格外重要。为了不在界面中显示过多的固定的控件操作,可以将一些操作功能放在菜单Menu中,当需要使用的时候显示出来,不需要的时候折叠隐藏起来。

    首先,创建菜单布局,如图:

    1.在res中创建菜单目录文件夹menu

    

    

    2.在菜单文件夹中创建菜单布局menu_main.xml

    

    

    3.在菜单布局中添加菜单条目item,必须声明属性id与标题title

    

    其次,在MainActivity中重写onCreateOptionsMenu()方法

    

    在此方法中,把编写的布局资源填充进menu对象中,需要使用菜单填充器对象MenuInflater,在Activity中提供了获取该类对象的方法。

    

    利用填充器,把定义的资源文件加载进Menu对象中,如图:

    

    此时重新编译代码,启动程序,如图:

     

    然后,给菜单选项添加点击监听事件,重写onOptionsItemSelected()

    

    判断选中的item

    

    在方法中处理相应的逻辑即可,比如跳转Activity。

    2、传递数据到下一个Activity

    需求:从MainActivity中传递数据到SecondActivity,并且在SecondActivity中接收传递的数据并打印出来。

    在Activity之间进行跳转时,有时需要传递一些数据,数据传递的方式有很多,使用Intent可以传递一些简单的数据。在跳转Activity时使用Intent,同时Intent可以携带一些简单的数据。

    首先,数据的传递

    

    可以看到,通过Intent对象的putExtra(String name,value)方法可以设置一些简单的数据,其中name是标识数据的名称,value是传递的具体数据,如图:

    

    其次,数据的接收

    上一步把数据通过Intent对象传递到SecondActivity中,那么怎样在SecondActivity中获取由MainActivity传递的数据呢?数据被存入到了Intent对象中,因此要想在SecondActivity中获取传递的数据,必须先获取传递的Intent,然后从Intent中取出数据。Activity提供了获取传递意图的方法,如图:

    

    常用方法6 getIntent()返回上一个Activity传递的Intent对象。

    既然获取到了Intent对象,就可以通过intent获取传递了数据了,如图:

    

    由于上一个Activity传递的是字符串,因此此处用getStringExtra()获取,相应类型使用相应方法即可,编译运行如图:

    

    3、返回数据到上一个Activity

    需求:在MainActivity中接收SecondActivity关闭时返回的数据

    前面进行activity之间的跳转使用的是startActivity()方法,其实还可以使用startActivityForResult()方法,此方法还可以接收返回的数据。

    首先,在MainActivity跳转SecondActivity时使用startActivityForResult()方法

    

    其次,在MainActivity重写OnActivityResult()方法

    

    然后,在关闭SecondActivity时,返回数据

    

    最后,在MainActivity的onActivityResult()中接收数据并打印

    

    编译代码并运行

    

猜你喜欢

转载自blog.csdn.net/JackiAndroid/article/details/80039587