目标效果:
1.首先新建好项目,设置好图标。
2.
这是应用自带的创建Android页面的方法,可以同时创建类hexml页面,并将新页面添加到activity标签中。
3.activity_main.xml页面
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="156dp"
android:onClick="toNewActivity"
android:text="toNewActivity" />
</RelativeLayout>
MainActivity.java页面
/**
* startActivityForSult(Intent intent,int requestCode); //intent为意图,用于跳转;requestCode为请求码,可以认为代表跳转事件起始页面的编号
* setResult(int resultCode,Intent data); //resultCode为结果码,可以认为跳转事件新页面的编号,data为新页面想要向起始页面返回的数据
* onResult(int requestCode,int resultCode,Intent data); //当新页面带着data数据往回跳转时,会进入onResult方法
*/
package com.example.returnvalue;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void toNewActivity(View view){
Intent intent=new Intent(this,NewActivity.class);
startActivityForResult(intent,1); //将MainActivity页面的请求码定位1
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { //新页面跳转回来会进入该方法
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case 1: //判断是不是由MainActivity页面进行请求的,如果是则执行case语句
if(resultCode==RESULT_OK){ //判断是不是由NewActivity页面进行跳转回来的,如果是则进入if语句
if(data!=null){
String returnData=data.getStringExtra("return_data");
Toast.makeText(this,"return_data="+returnData,Toast.LENGTH_LONG).show();
}
}
break;
default:
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
activity_new.xml页面
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".NewActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="144dp"
android:onClick="toFirstActivity"
android:text="toFirstActivity" />
</RelativeLayout>
NewActivity.java页面
package com.example.returnvalue;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
public class NewActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new);
}
public void toFirstActivity(View view){
Intent intent=new Intent();
intent.putExtra("return_data","hello");
setResult(RESULT_OK,intent); //将新页面编号定义为RESULT_OK,也就是-1
finish(); //关闭页面,就是将最上面的Activity移出了栈,并没有释放占用的资源
}
public void onBackPressed(){
//super.onBackPressed(); super.onBackPress()是执行系统的默认动作,就是退出当前Activity,所以当我们重写这个函数时,需要将这一句去掉
Intent intent=new Intent();
intent.putExtra("return_data","hello");
setResult(RESULT_OK,intent); //将新页面编号定义为RESULT_OK,也就是-1
finish(); //关闭页面,就是将最上面的Activity移出了栈,并没有释放占用的资源
}
}
4.这个例子中要注意重写onBackPressed方法时要去掉super.onBackPressed。