您的位置:首页 > 移动开发 > Android开发

Intent 实现页面之间的跳转

2016-04-07 00:13 423 查看
Intent 可以理解为信使(意图)
由Intent来协助完成Android各个组件之间的通讯

实现跳转的两种方式
1.startActivity(intent);
2.startActivityForResult(intent,requestCode);
onActivityResult(int requestCode,int resultCode,Intent data)
setResult(resultCode,data);

两种方式的代码:(省略xml文件、import包等)
-------------------------------------------------------------------------------------------
class Activity:
public class Activity_1 extends Activity{

 private Button bt1;

 private Button bt2;

 private TextView tv;

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  // TODO Auto-generated method stub

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_1);

  bt1=(Button) findViewById(R.id.button1);

  bt2=(Button) findViewById(R.id.button2);

  tv=(TextView) findViewById(R.id.textView1);

  /*

   * 对bt1进行点击监听 点击切换Activity

   * 1.第一种方式startActivity的方式实现

   *   初始化Intent

   */

  bt1.setOnClickListener(new OnClickListener() {

   

   public void onClick(View v) {

    // TODO Auto-generated method stub

    //第一个参数为上下文对象this 第二个参数 目标文件

    Intent intent = new Intent(Activity_1.this,Activity_2.class);

    startActivity(intent);

   }

  });

  /*

   * 通过startActivityForresult

   * */

  bt2.setOnClickListener(new OnClickListener() {

   

   public void onClick(View v) {

    // TODO Auto-generated method stub

    Intent intent = new Intent(Activity_1.this,Activity_2.class);

    //第一个参数为intent对象

    //第二个参数为请求的一个标志

    startActivityForResult(intent, 1);

   }

  });

 }

  /*

   *通过startActivityForresult跳转,接受返回数据的方法

   *requestCode  请求的标识

   *resultCode  第二个页面返回的标识

   *data 第二个页面回传的数据

   */

  @Override

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

  {

   super.onActivityResult(requestCode, resultCode, data);

   if(requestCode==1&&resultCode==2)

   {

    String s=data.getStringExtra("data");

    tv.setText(s);

   }

  }

 

}
------------------------------------------------------------------------------------------------------
class Activity2:
public class Activity_2 extends Activity{

 

 private Button bt3;

 @Override

 protected void onCreate(Bundle savedInstanceState) {

 // TODO Auto-generated method stub

 super.onCreate(savedInstanceState);

 setContentView(R.layout.activity_2);

 /*

  * 第二个页面什么时候给第一个页面回传数据

  * 回传到第一个页面实际上为一个Intent对象

  */

 bt3=(Button) findViewById(R.id.button3);

 bt3.setOnClickListener(new OnClickListener() {

  

  public void onClick(View v) {

   // TODO Auto-generated method stub

   Intent data = new Intent();

   data.putExtra("data", "你好");

   setResult(2, data);

   //结束当前页面

   finish();

  }

 });

}

}
-------------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android