Android之活动(Activity)

本文详细介绍了Android中的核心组件——活动(Activity),包括活动的定义、构成要素、生命周期及如何在AndroidManifest.xml中注册。示例代码展示了如何创建按钮点击事件,如拨打电话、打开网页以及使用Intent进行不同方式的页面跳转。同时,文章还提及了 Toast 提醒的使用。通过对活动生命周期的图示解析,帮助开发者更好地理解和掌握Android应用中的用户交互实现。

活动是什么

活动(Activity)是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互。

活动构成需要具备以下三个条件(逻辑与视图分离):

  1. java源文件;
  2. 与.java相对应的layout文件;
  3. AndroidManifest.xml声明注册;

在生命周期开始onCreate()中进行事件初始化

package com.example.activitytest;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //------------------------------------------
        // 以下默认生成
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_layout);

        // ---------------------------------------
        // 通过ID文件中取得类实例
        Button button1 = (Button) findViewById(R.id.button_1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_DIAL);
                intent.setData(Uri.parse("tel:10086"));
                startActivity(intent);
            }
        });

        /*
        // --------------------------------
        // 调用系统的浏览器来打开这个网页
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse("http://www.baidu.com"));
                startActivity(intent);
            }
        });
        */

        /*
        // --------------------------------
        // 匹配的类别与action自动跳转到指定activity
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                // AndroidManifest.xml指明的action name
                Intent intent = new Intent("com.example.activitytest.ACTION_START");

                // AndroidManifest.xml指明的Category name
                intent.addCategory("com.example.activitytest.MY_CATEGORY");
                startActivity(intent);
            }
        });
        */
        /*
        // -----------------------------------------------
        // 隐式intent使用方法,在AndroidManifest.xml中指明跳转条件
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent("com.example.activitytest.ACTION_START");
                startActivity(intent);
            }
        });
        */
        /*
        // -----------------------------------------------
        // 显式intent使用方法,指明转移activity类名
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
                startActivity(intent);
            }
        }
        );
        */
        /*
        // -----------------------------------------------
        // Toast提醒工具使用方法
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(FirstActivity.this, "You clicked Button 1",
                        Toast.LENGTH_SHORT).show();
            }
        });
        */
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //return super.onOptionsItemSelected(item);
        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;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //return super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

主活动之注册

注册在 “AndroidManifest.xml”中进行,加入如下红字标记两句,表示主活动界面,android studio中会自动的进行注册声明。

<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>

活动的生命周期图

工程说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值