为了测试新建两个activity,分别是MainActivity.java 、 OtherActivity.java。新建activity之后,记得在AndroidManifest.xml文件中注册(声明)。布局文件也需要重 新建一个(res-layout)
MainActivity.java
public class MainActivity extends Activity {
private Button myButton = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myButton = (Button) findViewById(R.id.myButton);
//将监听器捆绑在myButton按钮上,典型的事件触发
myButton.setOnClickListener(new MyButtonListener());
}
//定义监听器类
class MyButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//生成一个Intent对象
Intent intent = new Intent();
//传递键值对
intent.putExtra("testIntent", "123");
//从哪个activity跳转到哪个activity
intent.setClass(MainActivity.this, OtherActivity.class);
//startActivity是Activity的方法,由于MainActivity继承了Activity,所以它也有这个方法
MainActivity.this.startActivity(intent);
}
}
}
OtherActivity.java
public class OtherActivity extends Activity{
private TextView myTextView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
//getIntent可以获取传递到这个activity的Intent对象
Intent intent= getIntent();
String value = intent.getStringExtra("testIntent");
myTextView = (TextView) findViewById(R.id.myTextView);
myTextView.setText(value);
}
}
当然,上面只是同一个应用中Intent的传递数据,不同应用中也可以。比如发短信,在OnCreate方法中加入下面一段代码试试。
//可以在不同应用程序中也可以传递信息,Intent发短信
Uri uri = Uri.parse("smsto://0800000123");
Intent intent = new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body", "The SMS text");
startActivity(intent);