活动(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 ——活动的更多相关文章

  1. Android活动启动模式

    在android中,android活动是以栈的方式进行存储,在栈中的活动不断被重新激活至前台和不断被终止也不断被排序.因此对于栈中的活动管理也是一个比较麻烦的事情. android给我们提供了两类活动 ...

  2. S5PV210之Sate210-F DIY硬件,移植uboot,kernel,android 活动现在已经进入实施阶段吗,欢迎广大网友参与 !

    大家一起来diy 超低价四核的exynos4412或者Cortex A8S5pv210开源开发板 商业版Sate210已经完成了好久了.Sate4412 也已经出来.但是这两个接口非常全,主要是针对企 ...

  3. Android活动和碎片的生命周期及addToBackStack()方法

    开始学了Android活动的生命周期后又到了碎片的生命周期,就开始有点乱了.又看了一些总结的文章有一个挺详细的:https://blog.csdn.net/lecepin/article/detail ...

  4. Xamarin.Android活动的生命周期

    一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...

  5. Android活动管理工具

    ActivityCollector.java import android.app.Activity; import java.util.ArrayList; import java.util.Lis ...

  6. Android活动的生命周期

    掌握活动的生命周期对任何Android开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序. -------------------------------------- ...

  7. android: 活动和服务进行通信

    9.3.3    活动和服务进行通信 上一小节中我们学习了启动和停止服务的方法,不知道你有没有发现,虽然服务是在活 动里启动的,但在启动了服务之后,活动与服务基本就没有什么关系了.确实如此,我们在 活 ...

  8. Android活动生命周期

    任务(Task) Android 是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack).在默认情况下,每当我们启动了一个新的活动,它 ...

  9. android 活动的生命周期

    掌握活动的生命周期非常重要,因为一个正常的android应用,会有很多的活动,如何在这些活动之间进行切换.数据的交互等,就经常会用到活动的生命周期这一块的知识.可以说,只要掌握了活动的生命周期,才能更 ...

  10. 常用关于Android活动的实践技巧

    //知晓当前是在哪一个活动 /* 新建一个BaseActivity类(Java class), 继承自AppCompatActivity * 重写 onCreate()方法,已有的活动无需再继承自Ap ...

随机推荐

  1. 小代学Spring Boot之开篇

    想要获取更多文章可以访问我的博客 - 代码无止境. 前情提要 小代是一名入职不久的程序员,公司同事都亲切的称他小代.有一天小代的老大陈BOSS和小代说,公司后端最近准备换技术框架了. 小代: 换成啥? ...

  2. [网络协议]UDP实现的可靠协议

    UDP实现的可靠协议,基本都会对TCP的某一部分进行加强,另外一部分进行削弱.因为: “实时性+可靠性+公平性” 三者不能同时保证,因此可以牺牲TCP的局部公平性来换取更好的实时性,或者更浪费点带宽, ...

  3. VM虚拟机 VMWare Workstation Pro v15.0.1 中文破解版

    虚拟机软件VMware Workstation Pro 15.0 全新版本发布,此次更新了诸多客户机操作系统版本,另外完全兼容Win10创意者更新支持.12.0之后属于大型更新,专门为Win10的安装 ...

  4. 与某公司CTO的一次闲聊

    这是一次与某公司CTO的交流沟通,收获不少,记录下分享给大家,其中个别词句有自己增改成分. 既然是领导,就要学会画饼,画图的都是底下干活的. 管理好别人的预期,并能兑现承诺,不能只靠画大饼忽悠.针对某 ...

  5. 拓扑排序 (Topological Sorting)

    拓扑排序(Topological Sorting) 一.拓扑排序 含义 构造AOV网络全部顶点的拓扑有序序列的运算称为拓扑排序(Topological Sorting). 在图论中,拓扑排序(Topo ...

  6. 剑指offer第二版-10.斐波那契数列

    面试题10:斐波那契数列 题目要求: 求斐波那契数列的第n项的值.f(0)=0, f(1)=1, f(n)=f(n-1)+f(n-2) n>1 思路:使用循环从下往上计算数列. 考点:考察对递归 ...

  7. mybatis基础配置

    我这个写的比较简略,是自己短时间记录的可能只适合自己看,新手或者不懂的建议看看下面大神这篇: https://www.cnblogs.com/homejim/p/9613205.html 1.MyBa ...

  8. 求1-2/3+3/5-4/7+......49/97和(C语言实现)

    一.功能需求 求1 - 2/3 + 3/5 - 4/7 + ......49/97的和 C语言等级考试中也有涉及到类似的需求. 二.代码分析 仔细查看功能需求,可以发现这个等式的三个规律: 1.从每一 ...

  9. linux_硬链接和软链接区别

    硬链接有点类似于复制的概念.    ln 源文件 目的文件    ln不加-s,则默认是硬链接.例如,ln script script-hard,ls命令显示,script*显示硬链接有两个.我任意删 ...

  10. Kafka【入门】就这一篇!

    为获得更好的阅读体验,建议您访问原文地址:传送门 前言:在之前的文章里面已经了解到了「消息队列」是怎么样的一种存在(传送门),Kafka 作为当下流行的一种中间件,我们现在开始学习它! 一.Kafka ...