辉夜的博客

繁花似锦,辉夜如昼

0%

Android学习笔记(一)

认识Activity

activity就是一个活动界面,软件通过界面与用户交互。
后退键回到上一个activity,home键回到桌面。这两个按键都会影响activity。
一个Android项目包含两个最基本的文件:activity_main.xml,MainActivity.java。

activity.xml是主界面的布局文件,修改其中的内容可以设计程序的ui。在设计模式下可以直接拖动组件放到布局中
在res/value/string.xml中可以修改字符串的内容。
也可以选中内容按CTRL-B跳转。

程序从onCreate开始执行,activity通过setContentView方法生成视图。由资源文件生成了R.txt中的layout activity_main
这会布局文件.xml的名称改变而随之改变。在res/layout上右键新建,可以创建新的布局文件。文件名首字母必须小写,推荐全小写并
用下划线进行单词分割。Root布局可以选择LinearLayout

1
2
3
4
5
6
7
8
my_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

</LinearLayout>

这是一个垂直走向的布局。
接下来可以把setContentView的参数改成R.layout.my_layout
这就是新建布局和修改activity绑定布局的方法。

工程目录结构

  • app/manifests
    AndroidManifests.xml配置文件目录
  • app/java
    源代码目录,可以在这里新建包和java文件
  • app/res
    资源文件目录
    • layout 布局资源
    • menu 菜单资源
    • values 尺寸、字符串、样式资源

启动自定义的Activity

在布局里创建一个按钮,自定义按钮的名字Text和idid

1
2
3
4
5
<Button
android:id="@+id/btn_change_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Go to next activity" />

接下来可以使用
findViewById(R.id.<btn_id>)来找到这个按钮。再对这个函数的返回值调用setOnClickListener方法,并传入一个新建的事件监听器,即可完成对
“点击按钮”的响应:

1
2
3
4
5
6
7
8
findViewById(R.id.btn_change_activity).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {

}
}
);

创建新的Activity

在app/src/java右键新建,选择Activity-Empty Activity。也可以创建普通的JavaClass,再让其继承Activity即可。Android Studio会自动帮我们在manifest中注册activity,生成对应的java文件和布局xml文件。
接下来再来设计新的Activity的布局,可以把ViewText改成“这是另一个Activity”。

进行Activity切换

使用startActivity方法进行活动的切换,需要使用初始化器创建一个Intent实例作为startActivity的参数。

1
2
3
public void onClick(View view) {
startActivity(new Intent(MainActivity.this, AnotherAty.class));
}

查看SDK帮助手册

新版的AS将手册集成到了源码中,可以在鼠标悬停时显示提示,无需额外下载,但也无法单独查看。需要安装带有源码的SDK,
https://blog.csdn.net/limitzchen/article/details/107747510,如果SDK没有源码,重新下载并且修改构建的SDK版本https://blog.csdn.net/hou09tian/article/details/120105837

Activity生命周期

一个Acticvity的生命周期如下图所示,从被创建开始,activity可能会经历许多次的暂停-恢复或停止-重启,还有可能因为再在后台被清除而重新创建。

我想有几点是需要注意的:1.activity只要不再活动就会Pause,但只有不可见才会Stop。2.按下返回键时,activity会被destroy,而按下home键则只会Stop。
通过导航键找到活动时,如果活动所在的内存已经被清除,就要重新创建,否则就只需Restart。

利用以上几个原则,我们可以得到用一个activity打开另一个activity时的生命周期图:

activity交互图

如果在AndroidManifest中把新打开的activity的主题设置为对话框,新的活动就不会完全遮住原有的活动。这样,原有的活动的onStop()就不会执行。

1
2
3
4
5
 <activity
android:name=".AnotherAty"
android:exported="false"
+ android:theme="@style/Theme.AppCompat.Dialog"
/>

要查看活动生命周期的状况,可以复写on<Action>系列方法,并再其中加入System.out.println();语句这样就可以在输出栏监控各个方法是否执行。