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();

posted on 2014-12-24 21:36  Creater  阅读(167)  评论(0编辑  收藏  举报

导航