关闭

【Andorid学习笔记】startActivity和startActivityForResult的用法

257人阅读 评论(0) 收藏 举报
分类:
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();否则无法完成数据的传输
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    关于我
    个人资料
    • 访问:67235次
    • 积分:1064
    • 等级:
    • 排名:千里之外
    • 原创:58篇
    • 转载:7篇
    • 译文:1篇
    • 评论:16条
    博客专栏
    最新评论