点击按钮跳转到另一个Activity2
button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(listener2);
listener2 = new OnClickListener() {
public void onClick(View v) {
setTitle("这是在ActivityMain");
Intent intent2 = new Intent(ActivityMain.this, Activity2.class);
startActivity(intent2); //启动这个动作
}
};
Intent是什么?
Intent是一个动作的描述类,里面封装了这个动作。
Intent可以启动一个Activety、可以启动一个Service、可以启动一个Event
结束一个Activity
listener = new OnClickListener() {
public void onClick(View v) {
finish();
}
};
button = (Button) findViewById(R.id.button4);
button.setOnClickListener(listener);
setTitle("现在是在Activity2里");
两个Activity 之间传值与返回值
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(listener1);
listener1 = new OnClickListener() {
public void onClick(View v) {
Intent intent1 = new Intent(ActivityMain.this, Activity1.class);
intent1.putExtra("activityMain", "数据来自activityMain"); //将名值对写入Extra变量
startActivityForResult(intent1, REQUEST_CODE); // 可回调onActivityResult方法的一次跳转。//第二个参数是一个整形值,用来在回调函数里面判定是那个操作的返回,这个值不能为0
}
};
//获取返回的值
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_CANCELED)
setTitle("取消");
else if (resultCode == RESULT_OK) {
String temp=null;
Bundle extras = data.getExtras();
if (extras != null) {
temp = extras.getString("store");//取出里面的名字为“store”的值
}
setTitle(temp);
}
}
}
//接收发过来的值
Bundle extras = getIntent().getExtras();//返回调用它的Intent,返回其中的Extras,类型为Bundle,这个类型是名字对的封装只是他的值只能是简单类型和数组
if (extras != null) {
data = extras.getString("activityMain");//获得名字为activityMain 的值
}
setTitle("现在是在Activity1里:"+data);
//返回一值,给调用自己的Activity
listener1 = new OnClickListener() {
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putString("store", "数据来自Activity1");
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();
}
};