Android 一一 探究活动

来源:互联网 发布:c语言 while break 编辑:程序博客网 时间:2024/04/30 03:51

活动是什么?

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

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.sunny.transfer_data">    <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=".FirstActivity"            android:label="This is FirstActivity">            <intent-filter>                <!-- 设置为启动活动 -->                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <!-- 第二个活动 -->        <activity            android:name=".SecondActivity"            android:label="ZY"></activity>        <!-- 第三个活动 -->        <activity android:name=".ThirtActivity"></activity>        <activity android:name=".FourActiviry">        </activity>    </application></manifest>

所有的活动都要在AndroidManifest.xml中注册才能生效,而实际上当我们创建活动的同时,已经在AndroidManifest.xml中注册过了,

我们可以打开app/src/main/Android-Manifest.xml文件中看看. 所有的活动的注册声明要放在<application>标签内,这里是通过<activity>标签来对活动进行注册的. 在<activity>标签中我们使用了android:name 来指定具体注册哪一个活动,填入的 .FirstActivity 是 com.example.sunny.transfer_data包名的缩写,因为在最外层的<manifest>标签中已经通过package属性指定了程序包名,因此在注册活动时,就可以直接使用 .FirstActivity就足够了.


不过,这样注册了活动,我们的程序仍然是不能运行的,因为还没有为程序配置主活动,也就是说,当程序运行起来的时候,不知道要首先启动哪个活动.配置主活动的方法其实 就是在<activity>标签的内部加入<intent-filter>标签,并在这样标签里添加<action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER" /> 这两句即可


除此之外,我们还可以使用android:label指定活动中标题栏的内容,标题栏是显示在活动最顶部的,需要注意的是,给主活动指定的label不仅会成为标题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称.


在活动中使用Toast

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

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // setContentView()方法来给当前的活动加载一个布局        setContentView(R.layout.first_layout);        // Toast是一种提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后消失        // findViewById返回一个View对象,向下转型将它转为Button对象        Button btn1 = (Button) findViewById(R.id.button_1);        // 调用setOnClickListener来注册一个监听器,当点击按钮时 会调用OnClick方法        btn1.setOnClickListener(new View.OnClickListener(){            public void onClick(View v){                // Toast用法: 通过静态方法makeText()创建一个Toast对象,然后调用show()方法将Toast显示出来就可以了                // 三个参数: arg1: Context,传活动本身  arg2: Toast显示的内容  arg3: 显示的时长                Toast.makeText(FirstActivity.this,"你好,朝阳",                        Toast.LENGTH_SHORT).show();            }        });    }


Toast的用法非常简单,通过静态方法makeText()创建出一个Toast对象,然后调用 show(),将 Toast显示出来就可以了, makeText() 方法传入的3个参数,第一个参数 是context, 也就是Toast要求的上下文,由于活动本身就是一个Context对象,因此直接传入 FirstActivity.this,第二个参数是Toast显示的文本内容,第三个参数是Toast显示的时长,有两个内置常量 可选择 Toast.LENGTH_SHORTToast.LENGTH_LONG.


在活动中使用Menu

首先在res目录下新建一个 menu 文件夹, 右击res目录-->New-->Directory, 输入文件夹名menu,在menu文件夹下新建 main的菜单文件,右击 menu文件夹-->New-->Menu resource file.

在main.xml文件中添加

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">    <item        android:id="@+id/add_item"        android:title="Add"/>    <item        android:id="@+id/remove_item"        android:title="Remove"/></menu>

接着重新回到FirstActivity中来重写 onCreateOptionsMenu()方法

    public boolean onCreateOptionsMenu(Menu menu){        // 通过getMenuInflater方法得到MenuInflater对象,调用inflate方法给当前活动创建菜单        // inflate()方法两个参数 arg1: 指定我们通过哪个资源文件来创建菜单. R.menu.main                        //      arg2: 指定我们菜单项添加到哪一个Menu对象中.,返回true表示创建的菜单显示出来        getMenuInflater().inflate(R.menu.main,menu);        return true;    }    // 菜单的响应事件    public boolean onOptionsItemSelected(MenuItem item){        // item.getItemID() 判断我们点击的是哪个菜单,然后给每个菜单加入Toast        switch (item.getItemId()){            case R.id.add_item:                Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show();                break;            case R.id.remove_item:                Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();                break;            default:        }        return true;    }

销毁一个活动

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


原创粉丝点击