Android开发笔记之Intent初级学习教程

2019-12-10 19:02:56于海丽

6.4、编辑MainActivity.java文件

/*
   * 定义一个goToActivityBtn变量
*/
  private Button goToActivityBtn=null;  goToActivityBtn=(Button)findViewById(R.id.goToActivityBtn);
    goToActivityBtn.setOnClickListener(goToOtherActivity);
  private OnClickListener goToOtherActivity=new OnClickListener() {
    @Override
    public void onClick(View v) {
      //申明一个Intent
      Intent intent=new Intent();
      //跳转到命名为HongtenActivity的Activity
      intent.setClass(MainActivity.this, HongtenActivity.class);
      //把"Hello HongtenActivity"字符串以名字为"str"作为参数传递到HongtenActivity类中
      intent.putExtra("str", "Hello HongtenActivity");
      //启动Activity
//startActivity(intent);
      startActivityForResult(intent, REQUEST_CODE);
    }
  };
  /**
   * <li><b>参数:</b></li></br>
   *   <h3>requestCode: 是上面REQUEST_CODE</h3></br>
   *   <h3>resultCode: 是HongtenActivity类中的RESULT_CODE</h3></br>
   *   <h3>data: 是HongtenActivity类中传递过来的参数</h3>
*/
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    //这里是和MainActivity中的定义的REQUEST_CODE比较
//如果我们在MainActivity类中有不止一个Button时,
//都调用了startActivityForResult()方法,那么我们的程序就
//不知道是那个Button了,但是有了这样的判断,程序就能清楚的知道是那个Button    
    if(requestCode==REQUEST_CODE){
      //这是和上面的if()语句有相同的道理,也是确定返回的是那个Activity的值
      if(resultCode==HongtenActivity.RESULT_CODE){
        //取得HongtenActivity类中传递过来的信息
        Bundle bundle=data.getExtras();
        String text=bundle.getString("back");
        //把获得的信息显示出来
        Toast.makeText(MainActivity.this, text, Toast.LENGTH_LONG).show();
      }
    }
}

6.5、编辑string.xml文件

<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">IntentDemo</string>
<string name="hongtenBtn">去向MainActivity</string>
<string name="goToActivityBtn">去向HongtenActivity</string>
<string name="secondBtn">second</string>
<string name="mainBtn">Call</string>