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

一、对应的布局文件(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的步骤及其启动、数据传递)