Activity是Android的四大组件之一,同时它也是Android应用中最常见的组件之一。
一个应用通常会有多个Activity,它主要负责与用户进行交互,并向用户呈现出应用此时的状态,不同的Activiy呈现给用户不同的操作体验。
每当我们打开一个Android的app,我们都会接触到它,相当于一个屏幕,上面承载着我们所能看到和接触到的不同的组件。
1.布局中的元素
<Button
android:id="@+id/button_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Click Me"
/>
@+id/button_1:为布局元素的唯一标识符
match_parent:当前元素的宽度匹配父元素
wrap_contnt:当前元素的高度刚好包住其中的内容
text:指定元素中显示的内容
在布局文件(layout.xml)中添加控件后,通过setContentView(R.layout.first_layout)给当前的活动添加布局
2.在AndroidManifest中声明
<activity
android:name=".FirstActivity"
android:exported="true"
android:label="This is FirstActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
intent-filter>
activity>
android:name=".FirstActivity":这个属性指定了活动的类名。在这里,活动类的名称是 FirstActivity,前面的点 . 表示这个活动类是相对于应用程序包名的相对路径
android:exported="true":这个属性指示活动是否可以被其他应用程序访问。当设置为 true 时,其他应用程序可以启动这个活动
android:label="This is FirstActivity":这个属性用于设置活动的标签或标题,它通常会在应用程序的用户界面中显示给用户
:这指示这个活动是应用程序的主要入口点(Main Activity)。当用户启动应用程序时,系统将启动具有 MAIN 操作的活动。 :这指示这个活动是应用程序的启动器(Launcher Activity)。这是应用程序启动时的默认活动。 在 Android 中, 元素用于描述活动可以响应哪些 Intent。
android.intent.category.DEFAULT 是一个常见的 Intent 分类,表示这个活动可以响应普通的(默认的)Intent。
通常情况下,如果您的活动没有指定任何特定的 Intent 分类,它会自动包括 android.intent.category.DEFAULT 分类,以表示它可以响应一般的 Intent 请求
3.在活动中使用元素
Button button_1 = findViewById(R.id.button_1);
button_1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "You click me", Toast.LENGTH_LONG);
}
});
findViewById通过我们之前注册的id来查找对应的元素,返回值为View对象 setOnClickListener注册按钮的监听器
4.为当前活动添加Menu
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item_0"
android:title="@string/item_0" />
<item
android:id="@+id/item_1"
android:title="@string/item_1" />
menu>
可以手动编写或者通过拖动添加该布局元素 接下来通过Ctrl + o来重写onCreateOptionsMenu、onOptionsItemSelected,其中 onCreateOptionsMenu用于查找menu资源文件,并显示 onOptionsItemSelected用于将按钮与对应的功能相绑定
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.item_0:
Toast.makeText(TAG, "you click item_0", Toast.LENGTH_LONG).show();
break;
case R.id.item_1:
Toast.makeText(TAG, "you click item_1",Toast.LENGTH_LONG).show();
break;
default:
}
return super.onOptionsItemSelected(item);
}
5.销毁活动
通过finish()或者点击返回键销毁当前活动,返回上一活动或者退出进程
原文始发于微信公众号(东方隐侠安全团队):安卓逆向基础-四大组件之Activity
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论