Activity生命周期
image.pngimage.png
image.png
https://blog.csdn.net/xiao_yuanjl/article/details/109236935
Activity 传值和返回到前一页回调监听
当前页面用
startActivityForResult(intent, 999);
带一个标识符给下一个页面 传值apiintent.putExtra
,处理返回监听的逻辑onActivityResult生命周期
private void initViews() {
findViewById(R.id.buttonActivity).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// mac上command+option+v提取临时变量(很重要)
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
// mac上command+option+C 提取一个常量(很重要)
// activity传递值
intent.putExtra(URL_VALUE,getString(R.string.url_name));
// startActivity(intent);
startActivityForResult(intent, 999);
// final Intent intent = new Intent(MainActivity.this, SecondActivity.class);
//===============第一种=================================
//intent.putExtra(BUTTON_TITLE,getString(R.string.imooc_title));
//startActivity(intent);
//==============第二种=================================
// Bundle bundle = new Bundle();
// bundle.putString(BUTTON_TITLE, getString(R.string.imooc_title));
// intent.putExtra(BUTTON_TITLE, bundle);
// startActivity(intent);
// startActivityForResult(intent, 999);
//==============第三种=================================
//intent.putExtra(BUTTON_TITLE, new User());
//startActivity(intent);
}
});
// 处理返回的逻辑
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 999 && resultCode==RESULT_OK){ // 如果是这个页面带过去的999和返回的结果是-1,
Log.e("requestCode","处理返回当前的逻辑....");
setTitle(""+RESULT_OK);
}
}
接受参数的页面 获取
getIntent().getStringExtra(MainActivity.URL_VALUE);
在返回的时候调用setResult
带上数据即可
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Log.e("SecondActivity","onCreate...");
final Button button = findViewById(R.id.buttonFinish);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_OK); // 在返回的时候调用setResult
finish(); //返回上一级
}
});
if(getIntent() !=null) { // 上一个Activity有值的情况下
// MainActivity.URL_VALUE 里面的公共变量
String stringBtn = getIntent().getStringExtra(MainActivity.URL_VALUE);
// 拿到值填写到按钮上
button.setText(stringBtn);
}
// button.setOnClickListener(new );
}
网友评论