Andorid学习笔记(ADT)-startActivity和startActivityForResult的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Andorid学习笔记(ADT)-startActivity和startActivityForResult的用法相关的知识,希望对你有一定的参考价值。

startActivity的用法

  • startActivity同时用在Button按钮的onClickListener中

  • 在第一个activity(A)文件中:

    //写在onClickListener方法中
    
    public void onClick(View v){
    
    Intent intent = new Intent(); //使用Intent类的构造方法创建一个intent对象
    
    intent.setClass(A.this,B.class);//设置intent的意图,表示从A跳转到B
    
    startActivity(intent);//执行intent的意图,程序执行,从A跳转到B
    }

     

  • 在第二个activity(B)文件中:

     //A文件中的 startActivity(intent); 将自动运行到B文件中的onCreate方法中
    
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.B对应的layout文件);//使用R文件中的layout的id属性来启动相应的界面,至此使用startActivity完成activity的跳转完成
    }

 

startActivityForResult的用法

  • 相较于startActivity,startActivityForResult可以第二个Layout中的数据传输到第一个Layout中,并且将第二个Layout或者说activity关闭

写入A文件中的有:

startActivityForResult(Intent intent,requestCode)
  • intent 与 startActivity 中的intent的用途完全一样 requesetCode 作为一个参数(在onActivityResult中做匹配,值>=0即可)
onActivityResult(int requestCode, int resultCode, Intent data)
  • requestCode 指的是在B文件中setResult中的 resultCode 参数,一般设置为RESULT_OK
  • resultCode 指的是在A文件中的startActivityForResult方法中设置的requestCode
  • Intent data 表示在B文件中设置的数据传输,具体见Intent数据传输

写入B文件中的有:

setResult(RESULT_OK,intent);
finish();
  • 将intent中的数据传输到A文件中,一般使用bundle进行批量传参,详细传参方法见Intent数据传输
  • 一定要加上finish();否则无法完成数据的传输

以上是关于Andorid学习笔记(ADT)-startActivity和startActivityForResult的用法的主要内容,如果未能解决你的问题,请参考以下文章

Andorid学习笔记-eclipse-bundle包SDK目录结构

意外收获Gtihub上这套“Andorid从底层基础到架构成长笔记”,果然高手与菜鸟之间差距不止一点点!

《Andorid群英传》---读书笔记10.1

andorid权威编程指南 笔记

Android:日常学习笔记———探究广播机制

软构笔记-8-ADT和OOP中的“等价性”