美文网首页
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