android ——活动
活动(Activity)主要用于和用户进行交互,是一种可以包含用户界面的组件。
1、手动创建活动
右击com.example.administrator.exp5→New→Activity→Empty Activity,会弹出一个创建活动的对话框,将活动命名为FirstActivity。然后不要勾选Generate Layout File和Laucher Activity这两个选项。勾选Generate Layout File的话会自动为活动生成一个对应的布局文件,勾选Laucher Activity会将该活动设为项目的主活动,勾选BackwardsCompatibility表示会为项目启用向下兼容的模式,然后点击Finish完成。
打开AndroidManifest可以看到在18行FirstActivity已经被自动注册了。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.administrator.exp5"> <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".FirstActivity"></activity>
</application>
</manifest>
如果我们把代码简单的变成:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.administrator.exp5"> <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"></activity>
<activity android:name=".FirstActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这样就将FirstActivity活动变成了项目的主活动。
之前没有勾选Generate Layout File,也就是没有为FirstActivity创建布局文件,Android程序讲究逻辑和视图分离,最好每个活动都对应着自己的一个布局,现在手动创建一个布局文件:

右击res下的layout→New→Layout resource file,将文件命名为first_layout,根元素就选择LinerLayout。

在窗口的最下方有两个切换卡,选择Text可以看到代码:
<?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>
然后打开java下的FirstActivity,并在onCreate()方法中修改代码
package com.example.administrator.exp5; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; public class FirstActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
}
}
setContentView()方法用来给当前活动动态加载一个布局,在该方法中我们通常需要传入一个布局文件的id R.layout.first_layout。
2.在活动中使用Toast
Toast是Android系统提供的提醒方式,我们可以使用它将一下短小的信息通知给用户,这些信息过一段时间后会自动消失,而且不会占用任何的屏幕空间。
首先需要在活动的布局文件中添加一个按钮
<?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">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="button1"/>
</LinearLayout>
<Button/>是一个按钮控件,
android:id用于添加控件的id,
android:layout_width是控件的宽,
android:layout_height是控件的高,
wrap_content是根据内容的大小而变化尺寸,
match_parent是和父控件一样大,
android:text是按钮上的文本默认为全部大写。
然后需要修改FirstActivity的java代码:
public class FirstActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FirstActivity.this,"这是一个消息提醒",Toast.LENGTH_SHORT).show();
}
});
}
}
先通过findViewId()方法并传入相应id创建得到按钮的实例,由于findViewId()方法 的返回的是一个View对象,所以需要向下转型为Button对象,然后调用setOnClickListener()方法为按钮注册一个监听器,这样在点击按钮的时候就会执行onClick()方法,然后在onClick()中写弹出Toast的功能。
Toast通过静态方法maketext()方法创建一个Toast对象,然后调用show()方法将Toast显示出来,maketext()方法第一个参数是Context,由于活动本身就是一个Context对象,所以这里传入当前活动,作为Toast要求的上下文,第二个参数是显示的内容,第三个参数是显示的时长,两个变量可以选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG。效果如下:

android ——活动的更多相关文章
- Android活动启动模式
在android中,android活动是以栈的方式进行存储,在栈中的活动不断被重新激活至前台和不断被终止也不断被排序.因此对于栈中的活动管理也是一个比较麻烦的事情. android给我们提供了两类活动 ...
- S5PV210之Sate210-F DIY硬件,移植uboot,kernel,android 活动现在已经进入实施阶段吗,欢迎广大网友参与 !
大家一起来diy 超低价四核的exynos4412或者Cortex A8S5pv210开源开发板 商业版Sate210已经完成了好久了.Sate4412 也已经出来.但是这两个接口非常全,主要是针对企 ...
- Android活动和碎片的生命周期及addToBackStack()方法
开始学了Android活动的生命周期后又到了碎片的生命周期,就开始有点乱了.又看了一些总结的文章有一个挺详细的:https://blog.csdn.net/lecepin/article/detail ...
- Xamarin.Android活动的生命周期
一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...
- Android活动管理工具
ActivityCollector.java import android.app.Activity; import java.util.ArrayList; import java.util.Lis ...
- Android活动的生命周期
掌握活动的生命周期对任何Android开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序. -------------------------------------- ...
- android: 活动和服务进行通信
9.3.3 活动和服务进行通信 上一小节中我们学习了启动和停止服务的方法,不知道你有没有发现,虽然服务是在活 动里启动的,但在启动了服务之后,活动与服务基本就没有什么关系了.确实如此,我们在 活 ...
- Android活动生命周期
任务(Task) Android 是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack).在默认情况下,每当我们启动了一个新的活动,它 ...
- android 活动的生命周期
掌握活动的生命周期非常重要,因为一个正常的android应用,会有很多的活动,如何在这些活动之间进行切换.数据的交互等,就经常会用到活动的生命周期这一块的知识.可以说,只要掌握了活动的生命周期,才能更 ...
- 常用关于Android活动的实践技巧
//知晓当前是在哪一个活动 /* 新建一个BaseActivity类(Java class), 继承自AppCompatActivity * 重写 onCreate()方法,已有的活动无需再继承自Ap ...
随机推荐
- ReentrantLock源码的一点总结
ReentrantLock 是可重入锁,可重入锁的意思就是同一个线程可以重复获得该锁. 如何做到可重复获得该锁?计数器实现. 第一次加锁,cas比较是不是0,是0设置为1,并设置当前拥有锁的线程: 第 ...
- CentOS中对MySql的root用户重置密码
由于一般的修改ini文件来完成无密码登录数据库容易造成较大风险,所以使用修改启动服务参数的方式来更新user表,达到无密码登陆的目的. 1.关闭系统下运行的mysql服务 (1)杀掉进程号达到关闭目的 ...
- Java面试题 equals()与"=="的区别?
面试官:请问 equals() 和 "==" 有什么区别? 应聘者: equals()方法用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object ...
- SpringCloud解析之Ribbon
Ribbon是分布式微服务架构中负载均衡的一个解决方案,我们只需要引入ribbon依赖,然后初始化一个RestTemplate对象,在其上添加@LoadBalanced注解,就可以实现请求的负载均衡, ...
- ueditor 常用配置
scaleEnabled:是否可以拉伸长高,默认true(当开启时,自动长高失效) autoHeightEnabled:是否自动长高,默认true catchRemoteImageEnable:设置远 ...
- YuniKorn 介绍
一.YuniKorn 简介 YuniKorn 是一种轻量级的通用资源调度程序,适用于容器编排系统.它的创建是为了一方面在大规模,多租户环境中有效地实现各种工作负载的细粒度资源共享,另一方面可以动态地创 ...
- 百度OCR文字识别API使用心得===com.baidu.ocr.sdk.exception.SDKError[283604]
异常com.baidu.ocr.sdk.exception.SDKError[283604]App identifier unmatch.错误的packname或bundleId.logId::303 ...
- C#7.3 新增功能
连载目录 [已更新最新开发文章,点击查看详细] C# 7.3 版本有两个主要主题. 第一个主题提供使安全代码的性能与不安全代码的性能一样好的功能. 第二个主题提供对现有功能的增量改进. 此外,在 ...
- Java程序员注意——审查Java代码的六种常见错误
代码审查是消灭Bug最重要的方法之一,这些审查在大多数时候都特别奏效.由于代码审查本身所针对的对象,就是俯瞰整个代码在测试过程中的问题和Bug.并且,代码审查对消除一些特别细节的错误大有裨益,尤其是那 ...
- 什么是WebP以及如何在WordPress中使用WebP图像
图像通常是缓慢加载网页的最大原因之一.它们不仅减慢了加载时间,而且还可以占用服务器上的大量空间和资源.仔细选择文件类型并压缩它们有助于降低加载速度,但它们只能在图像质量受损之前进行优化.另一种选择是使 ...