Android 一一 探究活动

活动是什么?

活动(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()方法,我们在活动中调用这个方法就可以销毁当前活动了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

white camel

感谢支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值