神刀安全网

【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!”这行文件,运行结果如下:

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

运行结果和前一篇文章是一样的,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> 

运行一下,看看结果:

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

一般情况下,点击一下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类型的;好了,运行一下看看结果:

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

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 【lushengduan】02、Activity的基本认识 如何弹出一条Toast提示框

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮