您的位置:首页 > 移动开发 > Android开发

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: