探究Activity(1)--Activity的基本用法

一、Activity是什么

Activity(活动)是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序中应该包括零个或多个Activity。

二、Activity的基本用法

1、手动创建活动

(1)、重新创建一个项目,模板改成Add NoActivity

(2)、项目创建成功之后,仍然会默认使用Android模式的项目结构,这里我们手动改成Project模式。

右击–》New–》Activity–》Empty Activity,会弹出这样的一个框

(3)、这里跟之前创建程序差不多,需要注意的是不要勾选Generate Layout File和Launcher Activity这两个选项

勾选Generate Layout File表示会自动为FirstActivity创建一个对应的布局文件,勾选Launcher Activity表示会自动将FirstActivity设置为当前项目的主活动。第一次使用不需要勾选。勾选Backward Compatibility表示会为项目启用向下兼容的模式。

(4)、项目中的任何活动都需要重写Activity中的onCreate()的方法,目前我们已经重写了这个方法。这是由Android Studio自动帮我们完成的。代码如下:

  1. public class FirstActivity extends AppCompatActivity {
  2. @Override
  3. protected void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. }
  6. }

可以看到,onCreate()方法非常简单,就是调用了父类的onCreate()方法。当然这只是默认的实现,后面我们还可以加上很多自己的逻辑。

2、创建和加载布局

Android程序的设计讲究逻辑和视图分离,最好每一个活动都能对应一个布局,布局就是用来显示界面内容的,因此我们现在手动创建一个布局文件

(1)、右击app/src/main/res目录–》New–》Directory,会弹出一个新建目录的窗口,这里先创建一个名weilayout的目录,然后对着layout目录右键–》Layout resource file,又会弹出一个新建布局资源文件的窗口。

(2)、上图是Android Studio为我们提供的可视化布局编辑器,你可以在屏幕的中央区域预览当前的布局。在窗口的最下方有2个切换卡,左边是Design,右边是Text。Design是当前的可视化布局编辑器,在这里你不仅可以预览当前的布局,还可以通过拖放的方式编辑布局。而Text则是通过XML文件的方式来编辑布局

(3)、我们拖一个button控件到Design界面,然后在活动中加载这个布局。

回到FirstActivity界面,在onCreate()方法中加入如下代码:

  1. setContentView(R.layout.first_layout);

(4)、调用setContentView()方法来给当前的活动加载一个布局,而在setContentView()方法中,我们一般都会传入一个布局文件的id(项目中添加任何的资源都会在R文件中生成一个相对应的资源id)。我们在代码中引用文件只需要调用R.layout.first_layout就可以得到first_layout布局的id,然后在将这个传入setContentView()方法中

3、在AndroidManifest文件中注册

所有的活动都需要在AndroidManifest注册才能生效,而实际上FirstActivity已经在AndroidManifest.xml中注册过了,我们打开app/src/main/AndroidManifest.xml文件可以看到如下代码:

可以看到,活动的注册声明都要放在

修改后的AndroidManifest.xml文件,代码如下所示:

  1. <application
  2. android:allowBackup="true"
  3. android:icon="@mipmap/ic_launcher"
  4. android:label="@string/app_name"
  5. android:supportsRtl="true"
  6. android:theme="@style/AppTheme">
  7. <activity android:name=".FirstActivity"
  8. android:label="This is FirstActivity">
  9. <intent-filter>
  10. <action android:name="android.intent.action.MAIN"/>
  11. <category android:name="android.intent.category.LAUNCHER"/>
  12. </intent-filter>
  13. </activity>
  14. </application>
  15. </manifest>

这样的话,FirstActivity就成为我们这个程序的主活动了,即点击桌面应用程序图标时应首先打开的就是这个活动。另外需要注意,如果你的应用程序中咩有声明任何一个活动作为主活动,这个程序仍然是可以正常安装的,只是你无法再启动中看到或者打开这个程序。这种程序一般都是作为第三方服务供其他应用在内部进行调用的,如支付宝快捷支付服务。

4、在活动中使用Toast

Toast是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。

如何使用Toast

首先需要定义一个弹出Toast的触发点,正好之前程序界面上有一个button,我们可以让点击这个按钮的时候弹出一个Toast。在OnCreate()方法中添加如下代码:

  1. public class FirstActivity extends AppCompatActivity {
  2. @Override
  3. protected void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.first_layout);
  6. Button button1 = (Button) findViewById(R.id.button2);
  7. button1.setOnClickListener(new View.OnClickListener() {
  8. @Override
  9. public void onClick(View v) {
  10. Toast.makeText(FirstActivity.this, "You clicked Button", Toast.LENGTH_SHORT).show();
  11. }
  12. });
  13. }
  14. }

在活动中,可以通过findViewById()方法获取到在布局文件中定义的元素,这里我们传入R.id.button2,来得到按钮的实例,这个值是刚才在first_layout.xml中通过android:id

属性指定的。findViewById()方法返回的是一个View对象,我们需要向下转型将它转成Button对象。得到那妞的实例之后,我们通过调用setOnClick()方法。因此,弹出Toast的功能当然是要在按键的单击事件中去编写。

Toast的用法非常简单,通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来就可以了。

这里需要注意的是,makeText()方法需要传入3个参数。

第一个参数是Context,也就是Toast要求的上下文,由于活动本身就是一个Context对象这里直接传入FirstActivity.this即可。

第二个参数是Toast显示的文本内容。

第三个参数是Toast显示的时长,有两个内置常量可以选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG。

5、在活动中使用Menu

(1)、首先在res目录下新建一个menu文件夹,右击res目录–》New–》Directory,输入文件夹名menu,点击OK。然后在这个文件夹下再新建一个名叫main的菜单文件,右击menu文件夹–》New–》Menu resource file

(2)、在main.xml中添加代码:

  1. <menu xmlns:android="http://schemas.android.com/apk/res/android">
  2. <item
  3. android:id="@+id/add_iten"
  4. android:title="Add"/>
  5. <item
  6. android:id="@+id/remove_item"
  7. android:title="Remove"/>
  8. </menu>

这里我们创建2个菜单项,其中

(3)、重新回到FirstActivity中来重写onCOptionMenu()方法,重写方法可以使用ctrl+O快捷键

添加代码:

  1. @Override
  2. public boolean onCreateOptionsMenu(Menu menu) {
  3. getMenuInflater().inflate(R.menu.menu,menu);
  4. return super.onCreateOptionsMenu(menu);
  5. }

通过getMenuInflater()方法能够得带MenuInflater对象,再调用它的的inflate()方法就可以给当前活动创建菜单了。Inflate()方法接收2个参数,第一个参数用于指定我们通过哪一个资源文件来创建菜单,这里当然传入R.menu.main。第二个参数用于指定我们的菜单项将添加到哪一个指定的Menu对象当中,这里直接使用onCreateOptionMenu()方法中传入的menu参数。然后给这个方法返回ture,表示允许创建的菜单显示出来。如果返回了false,创建的菜单将无法显示。

(4)、当然,仅仅让菜单显示出来是不够的,我们定义菜单不仅是为了看的,关键是要菜单真正可用才行,因此还要再定义菜单响应事件。在FirstActivity中重写onOptionItemSelectd()方法:

代码如下:

  1. @Override
  2. public boolean onOptionsItemSelected(MenuItem item) {
  3. switch (item.getItemId()){
  4. case R.id.add_iten:
  5. Toast.makeText(this,"You Click Add",Toast.LENGTH_SHORT).show();
  6. break;
  7. case R.id.remove_item:
  8. Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT ).show();
  9. break;
  10. default:
  11. }
  12. return true;
  13. // return super.onOptionsItemSelected(item);
  14. }

运行程序会看到标题栏多了一个三点的符号的,这就是菜单按钮了

6、销毁一个Activity

方法1:按一下Back键就可以销毁当前的活动了。

方法2:在Activity类中提供了一个finish()方法,我们在活动中调用一下这个方法就可以销毁当前的活动了

  1. @Override
  2. public void onClick(View v) {
  3. finish(); //j结束当前活动
  4. // Toast.makeText(FirstActivity.this, "You clicked Button", Toast.LENGTH_SHORT).show();
  5. }

null

附件列表

时间: 2024-11-10 14:52:26

探究Activity(1)--Activity的基本用法的相关文章

Android基础知识:Day06 Activity生命周期和Intent用法

Day06 Activity生命周期和Intent用法 一.Activity的跳转 1. 创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.cate

Activity中ConfigChanges属性的用法

Activity中ConfigChanges属性的用法 - 综合讨论 - Android开发论坛 - 安卓开发论坛 - Android开发 - 安卓论坛 - 移动互联网门户 - Powered by Discuz! 通过设置这个属性可以使Activity捕捉设备状态变化,以下是可以被识别的内容:?? CONFIG_FONT_SCALE CONFIG_MCC CONFIG_MNC CONFIG_LOCALE CONFIG_TOUCHSCREEN CONFIG_KEYBOARD CONFIG_NAV

深入Activity,Activity启动模式LaunchMode完全解析

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53221384 本文出自[DylanAndroid的博客] 深入Activity,Activity启动模式LaunchMode完全解析 在平时的开发中,我们可能会了解到Activity的任务栈还有Activity的启动模式.那么Activity的启动模式都分别是怎么样的呢?如果设置了这些启动模式对任务栈有事么影响 ,还有就是这么启动模式在实际的开发中有什么应用呢?这里用图例和d

Android群英传笔记——第八章:Activity与Activity调用栈分析

Android群英传笔记--第八章:Activity与Activity调用栈分析 开篇,我们陈述一下Activity,Activity是整个应用用户交互的核心组件,了解Activity的工作模式,生命周期和管理方式,是了解Android的基础,本节主讲 Activity的生命周期与工作模式 Activity调用栈管理 一.Activity Activity作为四大组建出现平率最高的组件,我们在哪里都能看到他,就让我们一起先来了解一下他的生命周期 1.起源 Activity是用户交互的第一接口,他

【Android界面实现】Starting an Activity(Activity生命周期金字塔模型)

转载请注明:http://blog.csdn.net/zhaokaiqiang1992 本文翻译自http://developer.android.com/training/basics/activity-lifecycle/starting.html ,大家可以去看原文. Android并不象其他的程序,它不是从main()函数开始加载的,Android系统是通过在不同的时期调用生命周期的对应回调方法完成代码的初始化的.所以如果要了解Android程序,就必须了解启动顺序和销毁顺序. 这一节课

【Android开发-9】信息时代,Activity和Activity怎么交流

前言:在信息时代,人们不必像古代人那样飞鸽传书,随便一个短信.微信.QQ.微博都可以和自己亲爱的小伙伴快速沟通交流.在这样眼花缭乱的信息时代,选择一种合适自己的沟通工具是很有必要的,Android中的Activity与Activity之间的传参方法也是很多种的,在项目中怎么选择信息交互方法,就看项目的需求和自己的经验. 弄例子之前需要了解一个东西:Intent; 书上和网上看到的概念解释都很多,但本人喜欢它的英文意思:意图.你的意图想干嘛,跟它说了就行.比如我要传参,那你在这个Intent中设置

四大组件之Activity(上)——Activity的生命周期、系统回收、系统配置改变的影响

第1节 Activity的使用 Activity几乎是每个应用必有的组件,所以任何安卓应用的开发几乎都是从Activity开始的. 比如,你希望设计一个计算器应用,要呈现这个计算器的功能(显示出计算器的样子,实现计算的能力)一定会在这个应用中创建一个Activity,让这个Activity展示的界面就是计算器. 所以使用Android Studio创建工程以后,会默认为我们创建一个Activity组件,它继承自Android SDK的Activity类. class CalulatorActiv

四大组件之Activity(下)——Activity的常用Manifest属性、启动模式、ADB调试

第5节 Activity的Manifest配置 5.1 Activity的声明 Activity作为四大组件,代码中每定义一个Activity就需要在AndroidManifest.xml文件中声明它. <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.anddle.activitytest"> <application android

Activity与Activity间的通信

Activity与Activity间的通信 Activity的启动 一个Activity启动另一个Activity最简单的方法就是用startActivity(Intent intent)方法,这个方法调用请求是发送给操作系统的ActivityManager负责创建Activity实例并调用其onCreat()方法.ActivityManager是通过传入startActivity(Intent intent)方法的Intent参数知道需要启动哪一个Activity. ActivityManag

Android群英传知识点回顾——第八章:Activity与Activity调用栈分析

8.1 Activity 8.1.1 起源 8.1.2 Activity形态 8.1.3 生命周期 8.2 Activity任务栈简介 8.3 ActivityManifest启动模式 8.3.1 standard 8.3.2 singleTop 8.3.3 singleTask 8.3.4 singleInstance 8.4 Intent Flag启动模式 8.5 清空任务栈 8.6 Activity任务栈使用 四大组件中出现频率最高的组件 Activity是与用户交互的第一接口,它提供了一