Intent 实现页面之间的跳转

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)