四大组件
res目录结构
LOG
Activity
创建Activity
- 新建一个
Activity, 会自动继承Activity然后实现onCreate方法 - 添加一个
layout布局, 并设置布局 - 在创建的
Activity的onCreate中, 使用setContentView()进行layout布局设置 - 在
AndroidManifest中注册新建的Activity<activity android:name=".FirstActivity" android:label="2.2"> <!-- 声明activity, 并修改标题 --><intent-filter><action android:name="android.intent.action.MAIN"/> <!-- 设置为主 Activity --><category android:name="android.intent.category.LAUNCHER"/> <!-- 设置为启动项 --></intent-filter></activity>
如果应用程序没有申明任何一个
Activity为主Activity, 这个程序仍然可以正常安装, 但是无法在启动器中看到或者打开这个程序, 这种程序一般都是作为第三方服务供其他应用在内部进行调用的, 如支付宝的快捷支付服务
创建菜单
- 创建
menu目录, 然后创建一个menu.xml进行菜单定制 - 通过XML定制 菜单内容
- 实现
Activity的onCreateOptionsMenu方法, 在此方法中, 使用getMenuInflater().inflate()进行菜单自定义inflate参数1: 通过哪个资源进行菜单自定义inflate参数2: 指定菜单项, 将添加到哪个Menu对象中
- 返回值为
true则表示允许菜单显示, 反之则无法显示 - 实现
Activity的onOptionsItemSelected方法, 然后实现菜单的功能区别, 菜单项的ID通过参数item.getItemId()获得 ```java @Override public boolean onCreateOptionsMenu(Menu menu) { this.getMenuInflater().inflate(R.menu.main, menu); // 设置自定义menu return true; }
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){ // 派发命中的菜单项
case R.id.add_item:
Toast.makeText(this, “menu: add”, Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, “menu: remove”, Toast.LENGTH_SHORT).show();
break;
default: break;
}
return true;
}
```
Intent
用于在
Activity中穿梭
