Activity作为四大组件之首,是使用最频繁的一种组件,通常翻译成“活动”,个人觉得翻译成“界面”更加合适一些,正常情况下,除了window、dialog和toast,见到的界面只有activity。
1.要使用activity,必须在manifests文件中注册,先注册后使用;
2.actionBar
actionBar位于activity的顶部,用来显示activity的标题,icon等与其他view交互的元素
actionBar是在Android3.0之后使用,如果在低版本使用,则需要加上v7支持包
下面是关于actionBar的用法
package mashen.activitydemo;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class FilghtSecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filght_second);
ActionBar bar=getSupportActionBar();
bar.setTitle("我的博客");
//设置Logo
bar.setLogo(R.mipmap.user);
bar.setDisplayUseLogoEnabled(true);
bar.setDisplayShowHomeEnabled(true);
// bar.setDisplayHomeAsUpEnabled(true);
//使左上角图标可点击,对应id为android.R.id.home
// bar.setDisplayShowHomeEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id=item.getItemId();
switch (id){
case searchItemId:
Toast.makeText(this,"点击了搜索菜单",Toast.LENGTH_SHORT).show();
break;
case android.R.id.home:
Toast.makeText(this,"点击了返回菜单",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
final int searchItemId=100;
final int settingItemId=101;
final int updateItemId=102;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//创建右边的搜索
MenuItem searchItem=menu.add(0,searchItemId,0,"搜索");
searchItem.setIcon(R.mipmap.search);
//将搜索控件绑定到ActionBar
searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
MenuItem settingItem=menu.add(0,settingItemId,0,"设置");
settingItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
MenuItem updateItem=menu.add(0,updateItemId,0,"应用更新");
updateItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
return super.onCreateOptionsMenu(menu);
}
}
activity的生命周期
1.oncreate():表示activity正在被创建,在这个方法中我们可以做一些初始化的工作。比如调用setcontentview去加载界面布局资源。初始化activity的所需数据
2.onrestart():表示activity正在重新启动,一般情况下,当当前的activity从不可见重新变为可见状态时。onrestart()就会被调用,比如按home切换到桌面,或打开了一个新的activity,当前的activity就会被暂停,也就是onpause和onstop被执行,接着重新返回到这个activity,就会调用这个方法;
3.onstart():表示activity正在被启动,即将开始,这时候activity已经可见,但是没有出现在前台,还无法与用户进行交互;
4.onresume():表示activity已经可见了。并且出现在前台并进行活动;
5:onpause():表示activity正在停止,正常情况,紧接着onstop就会被调用,如果快速返回当前activity,那么onresume会被调用;
6:onstop():表示activity已经停止,可以做一些稍微重量级的回收工作,不能太耗时;
7:ondestory():表示activity即将被销毁,可以做一些回收工作和资源释放;
各个生命周期切换过程
1.启动:oncreate-->onstart-->onresume
2.按back键:onPause()->onStop()->onDestory()
3.按home:onPause()->onStop()这两个方法,这是activity还在后台
4.再次打开app:onRestart()->onStart()->onResume()