Android应用组件学习笔记
2015-05-12 14:20
218 查看
Activity
作为和用户之间交互的UI组件,Activity组件无疑在Android的UI组件中占据着重要位置。在通常状态下,Activity作为一个全屏的窗口出现,也可以作为其他的应用的子Activity出现。activity间的切换
在activity和activity之间借助intent组件进行,下面是一个最简单的调用。//设置调用的activity Intent in=new Intent(context, BluetoothOppBtErrorActivity.class); //设置标志位 in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //设置标题 in.putExtra("title",context.getString(R.string.unknown)); //设置显示内容 in.putExtra("content",context.getString(R.string.unknown_file_desc)); //启动Activity,不需要返回数据 context.startActivity(in);
在被调用的Activity中,处理数据的方法如下
protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); Intent intent = getIntent(); String mErrorTitle = intent.getStringExtra("title"); mErrorTitle = intent.getStringTitle("content"); ...... }
在泛化Activity类时,必须实现Activity::onCreate()和Activity::onPalse()两个方法。另外通过一个Activity调用另一个Activity时,如果不需要返回数据,则通过Context.startActivityForResult()方法来处理,常见的方法如下
Intent intent =new Intent(); intent.SetClass(this,CreatePlaylist.class); startActivityForResult(intent,NEW_PLAYLIST);
在被调Activity中,处理完请求后,可以通过如下方法向调用的Activity返回数据
setResult(RESULT_OK,(new Intent()).setData(uri));
对于返回的数据,调用Activit将在其onActivityResult方法中处理,过程如下
public void onActivityResult(int requestCode,int resultCode,Intent intent){ switch(reuestCode){ case NEW_PLAYLIST: URI uri = intent.getData(); } } }
标题栏的定制
为了隐藏标题栏,可以在Java代码中实现,也可以在AndroidMenifest.xml文件中实现。两者的不同之处在于:
用java实现,会在程序开始的时候出现标题栏,而后隐藏。而在Manifest中修改则会把标题栏当作属性来隐藏。并且一直都隐藏标题栏。
java实现方法
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); requestWindwoFeature(Window.FEATURE_NO_TITLE); //必须放在requestWindowFeature()后边 setContentView(R.layout.main); }
AndroidManifest.xml实现方法
<activity android:name=".graphics.FrameBufferObjectActivity" android:label="Graphics/OpenGL ES/Frame Buffer Object" android:theme="@android:style/Theme.NoTitleBar" android:configChanges="orientation|keyboardHidden"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.SIMPLE_CODE"/> </intent-filter> </activity>
自定义标题栏的方法
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title); ...... }
希望同时隐藏标题栏和状态栏的方法
<activity android:name=".graphics.FrameBufferObjectActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
相关文章推荐
- NET 应用架构指导 V2 学习笔记(十七) 组件设计指导
- NET 应用架构指导 V2 学习笔记(十八) 表现层组件设计指导
- NET 应用架构指导 V2 学习笔记(十九) 表现层组件设计指导
- NET 应用架构指导 V2 学习笔记(二十) 业务组件设计指导
- NET 应用架构指导 V2 学习笔记(二十二) 设计数据访问组件
- android应用开发学习笔记--游戏开发
- Mini 容器学习笔记6——组件的获取(应用)
- Android2.1消息应用(Messaging)源码学习笔记
- Android2.1消息应用(Messaging)源码学习笔记(转载)
- Android2.1消息应用(Messaging)源码学习笔记
- Android2.1消息应用(Messaging)源码学习笔记(转载)
- Android2.1消息应用(Messaging)源码学习笔记(转载)
- Android2.1消息应用(Messaging)源码学习笔记(转载)
- Android2.1消息应用(Messaging)源码学习笔记
- Android2.1消息应用(Messaging)源码学习笔记
- 学习笔记1:Android 的应用程序组件
- Android 应用的安装与启动过程(学习笔记)
- Android应用开发学习笔记(1)开发环境部署
- Android应用开发学习笔记(2)应用开发初步体验
- Android开发学习笔记(二)我的第一个Android应用