zoukankan      html  css  js  c++  java
  • Activity 和 Intent

    Activity 和 Intent

    一、Intent指向Activity

    二、利用 Intent 向第二个 Activity 传数据

    三、利用 Intent 接受第二个 Activity 的返回值

    四、利用 Intent 调用 内置应用程序

     一、Intent指向Activity

            Button btnStartAty1=(Button) findViewById(R.id.btnStartAty1);
            btnStartAty1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i=new Intent(MainActivity.this,aty1.class);
                    startActivity(i);
                }
            });

    代码解释: 

    在按钮 btnStartAty1 的点击事件中,创建一个Intent对象(参数:MainActivity是当前Activity,aty1是Intent指向的Activity),

    startActivity(i) 就是以Intent作为参数来启动Activity,这样,我们只要点击MainActivity中的btnStartAty1,

    程序就会从MainActivity切换到Activity Aty1。

     二、利用 Intent 向第二个 Activity 传数据

    利用Intent传值,是在是在一中的基础上进行的,分为传递单个值和多个值,如下代码

            Button btnCloseAty1=(Button) findViewById(R.id.btnCloseAty1);
    btnCloseAty1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
            
            Button btnSendToAty2=(Button) findViewById(R.id.btnSendToAty2);
            btnSendToAty2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    
                    ////绑定数据——putExtra传值
                    //Intent i=new Intent(aty1.this,aty2.class);
                    
    //i.putExtra("Name", "aty2");
                    
    //startActivity(i);
                    
                    
    //绑定成一捆数据——putExtras
                    Intent i=new Intent(aty1.this,aty2.class);
                    Bundle extras=new Bundle();
                    extras.putString("Name", "aty2");
                    extras.putString("Gender", "male");
                    i.putExtras(extras);
                    startActivity(i);
                }

     在第二个 Activity 中取值的代码:

        @Override
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.aty2);
            
            ////获取绑定的数据
            
    //String defaultName=getIntent().getStringExtra("Name");
            
           
    //获取一捆数据
            Bundle extras=getIntent().getExtras();
            
    String defaultName==extras.getString("Name");
            String defaultGender=extras.getString("Gender");
        }

     三、利用 Intent 接受第二个 Activity 的返回值

             Button btnGetReturndata=(Button) findViewById(R.id.btnGetReturndata);
     btnGetReturndata.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    Intent i=new Intent(aty2.this,aty3.class);
                    
                    startActivityForResult(i,0);
                }
            });

    在第二个Activity中设置返回的值: 

            Intent i=new Intent();
    i.putExtra("result", "this string is passed by aty3");
            
            setResult(0,i);
            finish();
  • 相关阅读:
    SGU 495 Kids and Prizes 概率DP 或 数学推理
    poj 2799 IP Networks 模拟 位运算
    uva 202 Repeating Decimals 模拟
    poj 3158 Kickdown 字符串匹配?
    uva 1595 Symmetry 暴力
    uva 201 Squares 暴力
    uva 1594 Ducci Sequence 哈希
    uva 1368 DNA Consensus String 字符串
    数字、字符串、列表的常用操作
    if条件判断 流程控制
  • 原文地址:https://www.cnblogs.com/key1309/p/4183403.html
Copyright © 2011-2022 走看看