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();
  • 相关阅读:
    eclipse下c/cpp " undefined reference to " or "launch failed binary not found"问题
    blockdev 设置文件预读大小
    宝宝语录
    CentOS修改主机名(hostname)
    subprocess报No such file or directory
    用ldap方式访问AD域的的错误解释
    英特尔的VTd技术是什么?
    This virtual machine requires the VMware keyboard support driver which is not installed
    Linux内核的文件预读详细详解
    UNP总结 Chapter 26~29 线程、IP选项、原始套接字、数据链路访问
  • 原文地址:https://www.cnblogs.com/key1309/p/4183403.html
Copyright © 2011-2022 走看看