• Android中的Activity


    今天主要学习了一些关于Activity的内容:

       Activity是一个Android应用程序组件(也称为Android四大组件之一),它提供了一个屏幕,用户可以通过该屏幕进行交互以执行某些操作,例如拨打电话,拍照,发送电子邮件或查看地图。每个活动都有一个窗口,用于绘制其用户界面。窗口通常填满屏幕,但可能比屏幕小,并漂浮在其他窗口的顶部.

             Android应用程序通常由多个彼此松散绑定的Activity组成。通常,应用程序中的一个Activity被指定为“主要”Activity,该Activity在首次启动应用程序时呈现给用户。然后,每个Activity可以启动另一个Activity以执行不同的操作。每次新Activity开始时,前一个Activity都会停止,但系统会将Activity保留在后台堆栈中(“后堆栈”)。当一个新的Activity开始时,它会被推到后面的堆栈上,并引起用户的注意。后栈遵循基本的“ 后进先出”堆栈机制,因此,当用户完成当前活动并按下"后退按钮"时,它从堆栈弹出(并销毁),之前的活动恢复。

             activity的启动分为两种,一种为入口activity,另一种为其他activity.

    启动自建的Activity

    Intent intent = new Intent(this, SignInActivity.class);
    startActivity(intent);

    启动其他类型的Activity

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);
    startActivity(intent);

    但如果我们要从上一个Activity中接受返回数据的话,需要下面的这种启动方式

    private void pickContact() {
        // Create an intent to "pick" a contact, as defined by the content provider URI
        Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
        startActivityForResult(intent, PICK_CONTACT_REQUEST);
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // If the request went well (OK) and the request was PICK_CONTACT_REQUEST
        if (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) {
            // Perform a query to the contact's content provider for the contact's name
            Cursor cursor = getContentResolver().query(data.getData(),
            new String[] {Contacts.DISPLAY_NAME}, null, null, null);
            if (cursor.moveToFirst()) { // True if the cursor is not empty
                int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME);
                String name = cursor.getString(columnIndex);
                // Do something with the selected contact's name...
            }
        }
    }

    如何关闭Activity呢?  也很简单

    可以通过调用其finish()方法来关闭活动。还可以关闭之前通过调用启动的单独活动finishActivity()。

    © 版权声明
    文章版权归作者所有,未经允许请勿转载。
    THE END
  • 相关阅读:
    异常处理
    PAT——1048. 数字加密
    PAT——1047. 编程团体赛
    PAT——1046. 划拳
    PAT——1045. 快速排序(25)
    PAT——1044. 火星数字
    PAT——1043. 输出PATest
    PAT——1042. 字符统计
    PAT——1041. 考试座位号
    PAT——1040. 有几个PAT
  • 原文地址:https://www.cnblogs.com/xp-thebest/p/12305531.html
Copyright © 2020-2023  润新知