【lushengduan】02、Activity的基本认识 如何弹出一条Toast提示框

一、Activity的简要理解

上篇博文已经知道如何编写一个简单的Activity了,可能有很多初学者会疑惑到底什么是Activity?我们来给出Activity的一个通俗的解释:Activity就是呈现在我们手机上的各种界面,也就是说,只要在手机上我们能看到的,都是Activity。任何一个Activity都需要继承android.app.Activity才能有显示界面的“本领”,当一个类继承自android.app.Activity,那么系统就会为其分配一个透明的布满手机屏幕的PhoneWindow(窗口),然后在onCreate里利用setContentView把布局填充至这个PhoneWindow,大多数布局都是铺满整个窗口的,但也有一些例外,如,Dialog(对话框)虽然本质上也是Activity,但是它的布局并没有把整个窗口铺满;接下来我们在布局中“粘上”一系列的控件,如,Button(按钮)、CheckBox(开关)等,这样一来就构成了我们在手机上平常看到的各种界面。好了,现在我们已经知道,要实现一个Activity,需要以下几个步骤:

① 继承自android.app.Activity

② Android系统为其分配PhoneWindow

③ setContentView把布局载入PhoneWindow

④ 在AndroidManifest.xml中申明此Activity

AndroidManifest.xml是安卓程序的一个清单,相当于我们大家的档案,里面有对程序最全面而又最简洁的描述,Android系统需要对其进行解析,根据解析出的不同结果去做相应的事;我们来看看上一篇博文中HelloWorld中的AndroidManifest,对其关键地方进行简要的注释说明。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lushengduan.helloworld"> //这是包名,在同一个手机中,包名不能重复

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher" //应用程序的图标,就是显示在桌面的图标
        android:label="@string/app_name" //应用程序的名称,显示在图标下面的文字,如QQ,新浪微博
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity
            android:name=".HelloWorldActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

    </application>

</manifest>

<activity ... </activity>中包裹的内容就是我们的HelloWorldActivity,必要的定义有两样,一个是“name”,另一个是“intent-filter”,android:name指的是“包名 + 类名”,而.HelloWorldActivity是把包名的省略了,用“.”来代替“com.example.lushengduan.helloworld”,这样也是常用的写法,每个Activity都写一遍包名,确实不是什么好的事情。intent-filter是intent的过滤器,intent我们暂时先不介绍,只需要记住,一个Activity要成为主界面(点开应用程序进入的第一个界面),在intent-filter中必须定义action为“android.intent.action.MAIN”,category为“android.intent.category.LAUNCHER”。

二、弹出一条Toast提示框

上一篇文章里,我们是通过java代码来实现布局的,但在Android开发里,更多的是使用xml布局文件,我们把HelloWorldActivity改成如下代码:

package com.example.lushengduan.helloworld;

import android.app.Activity;
import android.os.Bundle;

/**
 * Created by Lushengduan on 2016/3/4.
 */
public class HelloWorldActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);
    }
}

我们发现,上面的代码是通过“R.layout.main_layout”来载入布局的,至于为什么是“R.layout.xx”这个涉及到资源id,以后抽空再说,来先看看res/layout/main_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="HelloWorld!"/>

</LinearLayout>

不管三七二十一,先把这个程序跑起来看看,是否能显示出来“HelloWorld!”这行文件,运行结果如下:

运行结果和前一篇文章是一样的,LinearLayout是线性布局,TextView是一个显示文字控件,android:text的内容将会被显示出来;接下来,我们来为主界面添加一个Button,让按钮上显示的文字为“CLICK ME!”

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="HelloWorld!"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CLICK ME!"/>

</LinearLayout>

运行一下,看看结果:

一般情况下,点击一下Button都会系统都会有响应,如在DeskClok里的秒表界面,点击“开始”这个Button,秒表开始计时;现在我们需要实现一个功能:点击一下“CLICK ME!”,然后弹出一个Toast提示框,先给Button控件添加onClick属性

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="showToast"
        android:text="CLICK ME!"/>

设定onClick的值为“showToast”的话,根据onClick的值,就可以在HelloWorldActivity里定义一个名称为“showToast”的方法;当我们点击“CLICK ME!”按钮后,就会去调用showToast函数,然后利用Toast弹出所需要的提示框;鉴于大多数人都喜欢“20岁以下的妹子”,弹出的内容就似乎它了

    public void showToast (View view){
        Toast.makeText(this, "I like the girls under the age of 20!!", Toast.LENGTH_LONG).show();
    }

Toast提示框需要三个参数

① Context上下文:Activity本身也是Context,所以第一个参数用“this”(this就是HelloWorldActivity自己)

② 需要显示的文字:这个没什么好说的,想写什么写什么

③ 提示框显示时长:这里设置为长时间

写完后,不要忘记把提示框“show”出来,很多初学者就把.show()忘了加上,然后发现根本不会弹出提示框;还有此方法没有返回值,且参数是View类型的;好了,运行一下看看结果:

时间: 2024-11-05 16:00:42

【lushengduan】02、Activity的基本认识 如何弹出一条Toast提示框的相关文章

QTableView修改数据后弹出是否保存的提示框。

自定义CustomDelegate继承自QStyledItemDelegate,重写setModelData(self, editor, model, index)方法     def setModelData(self, editor, model, index):        #print("__________setModelData_________________")         print(model.data(index)) ##新的值,但是未保存到model中. 

Android底部弹出iOS7风格对话选项框

<Android底部弹出iOS7风格对话选项框> 效果图如下: 网上流传的Android底部弹出iOS7风格的对话选项框开源代码,原作者不详.我在网上流传的代码基础上改进了一些地方,把原来作为Application发布的代码整理成一个Android的Library,如果在未来的Android项目中需要这样的对话选项框样式,则只需要下载我上次到CSDN的完整库项目(完整的Android库项目代码我已经上传到CSDN,下载地址:http://download.csdn.net/download/z

jquery实现弹出即消失的提示层

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <sc

关闭网页弹出是否关闭的提示

关闭网页弹出是否关闭的提示:在很多网站都有这样的功能,点点击关闭当前页面的时候,就会弹出一个提示框,可以选择关闭或者不关闭当前页面,下面就介绍一下如何实现此功能,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /

iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示

iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示 本文介绍其简单使用: 第一步:在本地建立一个访问的服务端.  打开本地终端,在本地新建一个文件夹,在该文件夹中存放测试的html页面.   在终端输入一行代码:python -m SimpleHTTPServer ---第二步:配置环境  打开safari,偏好设置->勾选 "在菜单栏中显示开发菜单",如下图所示. 第三步:编写html文件 在测试文件appdown.html中编写的测试代码如下:   `说明`44493

iOS开发实用技巧——在html页面头部弹出app应用下载提示

iOS开发实用技巧——在html页面头部弹出app应用下载提示 本文介绍其简单使用: 第一步:在本地建立一个访问的服务端. 打开本地终端,在本地新建一个文件夹,在该文件夹中存放测试的html页面. 在终端输入一行代码:python -m SimpleHTTPServer ---第二步:配置环境 打开safari,偏好设置->勾选 "在菜单栏中显示开发菜单",如下图所示. 第三步:编写html文件 在测试文件appdown.html中编写的测试代码如下: `说明`444934666

iphone底部弹出广告条

iphone底部弹出广告条[电薇:132乄8688乄4109][Q群780516296]伊朗高层对伊核协议有分歧?哈梅内伊为此再定调莫迪推动印度武器国产化 国企不靠谱将目光转向私企在朝鲜问题上 美国为啥最近变得越发"焦躁"?今年涨得最好的3类基金:石油基金.美股基金.REITs法国为吸引中国游客费尽心思:开设专用购物中心不少父母主动支持 整容成了孩子的"开学礼物"?领奖服的变迁 民族品牌催化下中国体育的发展之路荷兰银行:鲍威尔评论偏鸽派 对美元是利空日防相巨资\&q

Android动态改变布局,比如登陆弹出软键盘,登陆框上移(转载)

Android动态改变布局 http://www.cnblogs.com/angeldevil/p/3836256.html 遇到这么个需求,先看图:      其实是一个软件的登录界面,初始是第一个图的样子,当软键盘弹出后变为第二个图的样子,因为登录界面有用户名.密码.登录按钮,不这样的话软键盘弹出后会遮住登录按钮(其实之前的实现放到了ScrollView里面,监听软键盘弹出后滚动到底部,软键盘隐藏后滚动到顶部,也是可以的). 最简单的方法就是多加几个冗余的View,根据软键盘的状态隐藏不需要

微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法

Android微信内置浏览H5页面,因为其中的文本输入框(input)放置在靠近页面的中下方,点击文本框以后,则输入框会被弹出的手机输入法键盘遮盖住. 找到一段js代码直接解决之,点击时强制滚动之,好像也解决了在Android浏览器下浏览的同样问题. 1 if(/Android [4-6]/.test(navigator.appVersion)) { 2 window.addEventListener("resize", function() { 3 if(document.activ