1、上一个Activity向下一个Activity传递信息
1、FirstActivity(上一个)跳转到下一个SecondActivity(下一个)
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
2、传入要发送的消息
intent.putExtra("message","我是要传入的消息");
FirstActivity
public class FirstActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
Intent intent = new Intent(this,SecondActivity.class);
intent.putExtra("name","大帅哥");
startActivity(intent);
}
}
如果消息比较多可以用Bundle
Bundle bundle = new Bundle();
bundle.putString("message","我是要传入的消息");
bundle.putInt("number",100);
intnet.putExtras(bundle);
3、启动FirstActivity
startActivity(intnet);
4、SecondActivity接收消息
Intent intent = getIntent();
intent.getStringExtra("message");
Bundle接收消息
Bundle bundle = getIntent().getExtras();
bundle.getString("message");
bundle.getInt("number");
SecondActivity
public class SecondActivity extends AppCompatActivity {
private static final String TAG = "SecondActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent intent = getIntent();
String name = intent.getStringExtra("name");
Log.d(TAG, "onCreate: "+name);
}
}
2、下一个Activity向上一个Activity传递消息
1、用startActivityRorResult启动FirstActivity
startActivityRorResult(intnet,1);
2、SecondActivity传入要发送的消息
Intent intent = new Intent();
intent.putExtra("message","我是要传入的消息");
3、setResult返回intent的数据
setResult(RESULT_OK,intent);
finish();
4、添加onBackPressed方法,提供BACK键返回方式
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent();
intent.putExtra("time","21:57");
setResult(RESULT_OK,intent);
finish();
}
5、FirstActivity接收消息
Intent intent = getIntent();
intent.getStringExtra("message");
6、FirstActivity重写onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String returnedData = data.getStringExtra("time");
Log.d("FirstActivity", returnedData);
}
break;
}
}
FirstActivity
public class FirstActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "FirstActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
findViewById(R.id.btn_jump).setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(intent,1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case 1:
if (resultCode == RESULT_OK){
String time = data.getStringExtra("time");
Log.d(TAG, "onActivityResult: "+time);
}
break;
}
}
}
SecondActivity
public class SecondActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "SecondActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
findViewById(R.id.btn_back).setOnClickListener(this);
}
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent();
intent.putExtra("time","21:57");
setResult(RESULT_OK,intent);
finish();
}
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("time","21:57");
setResult(RESULT_OK,intent);
finish();
}
}