Android自学笔记之Intent 页面跳转详解

Intent:意图,协助完成Android各个组件之间的通讯

实现跳转功能有两种实现方式:1.无返回值的跳转 2.有返回值的跳转

一、无返回值的跳转实现需要用到的方法:startActivity(intent)

二、有返回值的跳转实现需要用到的方法:

startActivityForResult(intent,requestCode)//有返回值onActivityResult(int requestCode,int resultCode,Intent data)//接收返回值A页面setResult(resultCode,data)//设置返回值B页面

第一种方法①创建两个Acitivity.java\两个xml②重写onCreate()方法、setContentView(R.layout.factivity)引入页面③在AndroidMainifest.xml中声明<activity>包括改名字name属性、有intent_filter的是首启动页面④按钮初始化(声明、findViewById)、setOnclickListener()⑤在onClick()中Intent intent=new Intent(FActivity.this,SAcitivity.class)//(上下文对象,)上下文对象也可以声明一个Context的全局化变量,在使context=this//目标文件startActivity(intent);

第二种方法

有返回结果的页面跳转。FActivity第一个页面中:1、startActivityForResult(intent,requestCode)第一个参数是Intent对象第二个参数是请求的一个标志2、通过startActivityForResult跳转,接收返回数据的方法:【在按钮的点击事件中】onActivityResult(int requestCode,int resultCode,Intent data)requestCode:请求的标志(不同的页面标志不同,通过这个标志接收不同的返回数据)resultCode:第二个页面返回的标志(通过这两个标志判断是哪个页面返回的数据)data:第二个页面回传的数据SActivity第二个页面中:setResult(resultCode,data)3、回传到第一个页面的实际上是一个Intent对象【在按钮的点击事件中】Intent data = new Intent();data.putExtra("data",content); //事先初始化了一个变量private String content = "你好";setResult(2,data);finish(); //结束当前页面

.class 关联factivity.xml,SActivity.class 关联sactivity.xml。然后在AndroidMainfest.xml加入FActivity,SActivity,,然后修改<intent-filter>即哪个.class首先运行。最后运行上述步骤,就可以实现页面跳转了:

具体实现:

FActivity.class:

package com.example.administrator.activitydemo;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;/** * Created by Administrator on 2015/8/31. */public class FActivity extends Activity {private Button button;private Button bt;private Context context;private TextView textView;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.factivity);/**** ①创建两个Acitivity.java\两个xml②重写onCreate()方法、setContentView(R.layout.factivity)引入页面③在AndroidMainifest.xml中声明<activity>包 括改名字name属性、有intent_filter的是首启动页面④按钮初始化(声明、findViewById)、setOnclickListener()⑤在onClick()中Intent intent=new Intent(FActivity.this,SAcitivity.class)/ /(上下文对象,)上下文对象也可以声明一个Context的全局化变量,在使context=this//目标文件startActivity(intent);*/context = this;textView = (TextView) findViewById(R.id.textView);button = (Button) findViewById(R.id.button_first);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(context,SActivity.class);startActivity(intent);}});bt = (Button) findViewById(R.id.button2);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(context,SActivity.class);startActivityForResult(intent,1);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if(requestCode==1&&resultCode==2){String context = data.getStringExtra("data");textView.setText(context);}}}SActivity.class:

package com.example.administrator.activitydemo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;/** * Created by Administrator on 2015/8/31. */public class SActivity extends Activity {private Button button;private String context = "Hello";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.sactivity);button = (Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent data = new Intent();data.putExtra("data",context);setResult(2,data);//销毁这个页面finish();}});}}factivity.xml

临行之前,面对太多的疑问和不解:

Android自学笔记之Intent 页面跳转详解

相关文章:

你感兴趣的文章:

标签云: