Android 第五课——Activity基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android 第五课——Activity基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3274字,纯文字阅读大概需要5分钟。
内容图文
1 Activity 概念
呈现在手机上的视图界面,类似于web程序的Servlet,它的父类是Context(上下文)。
2 Activity 创建
1)新建一个继承Activity的类
2)重写onCreate方法,这个方法会在Activity启动时第一个被调用,在这个方法中我们一般会有这两个步骤:
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
3)在AndroidManifest中注册Activity,AndroidManifest文件犹如web程序中的web.xml文件
<activity android:name="com.hnust.moon.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".OtherActivity" android:label="other_activity"> </activity>
4)一个Activity只是一个视图,我们需要在视图中设置UI布局,那么还要放置组件在Activity中。
3 多个Activity之间相互切换
假设我们按照以上步骤已经创建了两个Activity,这时我们可以通过intent进行数据动作调用:
MainActivity中:
Intent intent = new Intent(); intent.setClass(MainActivity.this, OtherActivity.class); intent.putExtra("name", "heweipo_test"); MainActivity.this.startActivity(intent); OtherActivity中 Intent intent = this.getIntent(); String value = intent.getStringExtra("name"); .....
4 Activity中添加菜单
1)首先继承ActionBarActivity
2)重写onCreateOptionsMenu和onOptionsItemSelected;前者是按下菜单按钮时触发的事件,我们一般在这里初始化菜单的组件;后者是当菜单的具体某一项被点击时触发,这里主要是编写每一个菜单项的具体业务功能。
3)java代码初始化菜单组件如下:onCreateOptionsMenu 具体实现
menu.add(0, 8080, 1, R.string.exit);//menu.add(group,itemID,order,title); menu.add("file"); SubMenu sub = menu.addSubMenu("sub"); sub.add(group,itemID,order,title);//添加子菜单使用 getMenuInflater().inflate(R.menu.main, menu); //从资源文件中找到name为main.xml的文件然后强制转为当前activity下的菜单。
XML文件实现
<item android:id="@+id/mainActivity_operation" android:title="@string/mainActivity_operations" > <menu> <item android:id="@+id/menu_addition" android:title="@string/addition" /> <item android:id="@+id/menu_subtraction" android:title="@string/subtraction" /> </menu> </item> <group android:id="group"> 菜单分组控制 <item android:id="@+id/file2" android:title="file2"></item> <item android:id="@+id/file3" android:title="file3"></item> </group>
4)关于菜单项点击时具体处理:onOptionsItemSelected
int id = item.getItemId(); switch (id) { case R.id.action_settings: break; case 8080: finish(); break; } return super.onOptionsItemSelected(item);
5 横屏与竖屏
1)activity初始化时或者横竖屏切换时 onCreate方法都会被调用。关于这个问题,如果我们的在activity中刚刚输入了部分内容,结果
因为屏幕横竖发生变化,会不会导致以前内容丢失呢?Google是这样解决的问题的,如果横屏和竖屏中layout的组件有相同的ID,那么Google会缓存这部分内容,根据ID在对应的组件上添加以前的内容,但是要是没有ID,或者找不到ID,那么这些内容肯定会丢失!另外,赋值这些内容并不是在onCreate方法调用之前而是之后,所以在onCreate方法是不可能获取到缓存的值的,同时我们也不能在onCreate方法中为组件赋值,因为会被覆盖。横屏或竖屏分开布局只要新建两个与layout同目录下的文件夹layout_land与layout_port.
2)onConfigurationChanged(configure)
<activity android:name="..." android:configChanges="orientation|keyboardHidden|screen..."> <intent-filter>........</intent-filter> </activity>
如果我们在配置文件如下指定,那么横竖屏替换时,就不会调用onCreate方法,而是调用onConfigurationChanged
this.getResources().getConfiguration().orientation ,configure.orientation 同样可以判断方向。
3)控制横屏与竖屏是在AndroidManifest文件中Activity中设置android:screenOrientation值,有如下几个值:
-
unspecified 默认值,由系统判断状态自动切换
-
landscape 横屏
-
portrait 竖屏
-
user 用户当前设置的orientation值
-
behind 下一个要显示的Activity的orientation值
-
sensor 使用传感器 传感器的方向
-
nosensor 不使用传感器 基本等同于unspecified
原文:http://my.oschina.net/u/1989321/blog/362998
内容总结
以上是互联网集市为您收集整理的Android 第五课——Activity基础全部内容,希望文章能够帮你解决Android 第五课——Activity基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。