美文网首页buffer程序人生Android开发
手动添加activity的步骤及其启动、数据传递

手动添加activity的步骤及其启动、数据传递

作者: 五人行 | 来源:发表于2017-01-01 16:55 被阅读171次

    一、对应的布局文件(XXX_layout.xml);

    二、创建Activity的子类;并在onCreate()方法中引用布局文件;

    三、在androidManifest.xml中配置这个Activity;

    四、启动Activity

    4.1)、基于Intent的通信

    intent对象是component用来与操作系统通信的一种媒介工具;使用intent告知ActivityManager该启动哪一个activity;

    4.1.1、显示调用例子(在QuizActivity上调用CheatActivity)

    Intent intent=new Intent(QuizActivity.this,CheatActivity.class);

    QuizActivity.this.startActivity(intent);

    4.1.2、隐式调用Intent

    一个应用的activity如需启动另一个应用的activity,可通过创建隐式intent来处理。

    五、Activity之间的数据传递

    5.1、使用Intent的extra

    extra是一种key-value结构。在父Activity传数据给子Activity。

    Intent intent=newIntent(QuizActivity.this,CheatActivity.class);

    boolean question=QuizActivity.this.mQuestionBank[QuizActivity.this.mCurrentIndex].ismBoolQuestion();

    intent.putExtra(CheatActivity.KEY_EXTRA_ANSWER,question);//传个boolean值

    QuizActivity.this.startActivity(intent);  //没有返回结果

    在子activity的onCreate()方法中接收父传入的数据:

    this.mAnswerIsTrue=this.getIntent().getBooleanExtra(CheatActivity.KEY_EXTRA_ANSWER,false);

    5.2、父从子Activity中获取返回数据

    1、先在父Activity中以下面的方式调用子Activity。

    QuizActivity.this.startActivityForResult(intent,0);

    2、在子Activity中以下面的方式返回结果给父Activity:

    Intent intent=new Intent();

    intent.putExtra(CheatActivity.KEY_RETURN,b);

    this.setResult(100,intent);

    3、再在父Activity中重写下面的方法

    @Override

    protected void onActivityResult(int requestCode,int resultCode, Intent data) {

    if(data!=null){

    boolean b= data.getBooleanExtra(CheatActivity.KEY_RETURN,false);

    Log.i("return value:",b+":resultCode="+resultCode+":requestCode="+requestCode);

    }

    }

    相关文章

      网友评论

        本文标题:手动添加activity的步骤及其启动、数据传递

        本文链接:https://www.haomeiwen.com/subject/qlcivttx.html