zoukankan      html  css  js  c++  java
  • 什么是Intent(意图)

    1、Intent是一种运行时绑定(runtime bingding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种

    请求或者意愿,Android会根据意愿的内容选择适当的组件来请求。

    2、在这些组件之间的通讯中,主要是由Intent协助完成的。

    Intent负责对应用中一次操作的动作,动作设计数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,

    并完成组件的调用。

    3、因此,Intent在这里起这一个媒体中介的作用,专门提供组件相互调用的相关信息,实现调用者与被调用者之间的解耦。

    例如:在一个联系人维护的应用中,当我在一个联系人列表屏幕(建设对应的Activity为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息

    屏幕(折射对应的Activity为detailactivity)。

    4、为了实现这个目的,listActivity需要构造一个Intent,这个Intent用于告诉系统,我们要做“查看”动作。

    此动作对应的查看对象“某某联系人”,然后调用startActivity(Intent intent),将构造的Intent传入,系统会根据此Intent中

    描述,到ManiFest中找到满足此Intent要求的Acitvity,系统会调用找到Activity,即为detailActivity,最终传入Intent

    detailActivity则会根据此Intent中的描述,执行响应的操作。

    package com.example.app.intentchuandi;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    public class MainActivity extends AppCompatActivity {
    
        private Button button;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main); //加载视图
            button = (Button)this.findViewById(R.id.button);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent(MainActivity.this,IntentClas.class);
                    intent.putExtra("hjk","张三");
                    intent.putExtra("age","23");
                    intent.putExtra("address","南京");
                    //启动意图
                    startActivity(intent);
                }
            });
        }
    }
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.layout);
            Intent intent = getIntent();
           int age = intent.getIntExtra("age",0);
            String hjk = intent.getStringExtra("hjk");
            String address = intent.getStringExtra("address");
            textView = (TextView)this.findViewById(R.id.sf);
            textView.setText("age---->>"+age+"
    "+"name--->>"+hjk+"address--->>"+address);
    
        }
  • 相关阅读:
    Mininet系列实验(六):Mininet动态改变转发规则实验
    Mininet系列实验(五):Mininet设置带宽之简单性能测试
    Mininet系列实验(三):Mininet命令延伸实验扩展
    Mininet系列实验(一):Mininet使用源码安装
    集合初始化器概览(Visual Basic)
    为什么开发人员不能估算时间?
    Lambda 表达式 Lambda Expressions (Visual Basic)
    宽松委托转换(Relaxed delegate conversion)
    [翻译]SQL Server 未公开的两个存储过程sp_MSforeachtable 和 sp_MSforeachdb
    Visual Basic 2010 新特性
  • 原文地址:https://www.cnblogs.com/youmingkuang/p/5601943.html
Copyright © 2011-2022 走看看