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();
  • 相关阅读:
    No necessary symbol fonts
    apt-get Error BrokenCount
    Repository XXX does not have a Realease file
    网页报错:You don't have permission to access
    Operating System not found
    JAVA平台AOP技术研究
    AOP技术基础
    SpringAOP浅析
    CGLIB动态代理
    Java设计模式—Proxy动态代理模式
  • 原文地址:https://www.cnblogs.com/key1309/p/4183403.html
Copyright © 2011-2022 走看看