美文网首页
Activity生命周期和简单传值字符串

Activity生命周期和简单传值字符串

作者: 俗人彭jin | 来源:发表于2021-08-24 14:53 被阅读0次

Activity生命周期

image.png
image.png

https://blog.csdn.net/xiao_yuanjl/article/details/109236935

image.png

Activity 传值和返回到前一页回调监听

当前页面用startActivityForResult(intent, 999); 带一个标识符给下一个页面 传值api intent.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 );
    }

相关文章

网友评论

      本文标题:Activity生命周期和简单传值字符串

      本文链接:https://www.haomeiwen.com/subject/hwmzvltx.html