四大组件
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
中穿梭