Android 的数据传递–startActivityForResult,onActivityResult与setResult

  • Post author:
  • Post category:其他




步骤



1.界面一

startActivityForResult的第二个参数是来告诉ActivityResult是我是谁,ActivityResult知道是谁后,再给这个谁来工作

                    Intent intentTextIcon = new Intent(MainActivity.this, TextIconActivity.class);//跳转到第二个界面
                    startActivityForResult(intentTextIcon, ConstantsUtils.REQUEST_CODE_TEXT_ICON);



2.界面二

setResult:第一个参数告诉界面一OK,界面一知道ok后在判断是哪个家伙,再根据是哪个家伙,再做事。

Intent intent=new Intent();
                    intent.putExtra(ConstantsUtils.INTENT_COLOR,color);
                    intent.putExtra(ConstantsUtils.INTENT_TEXT_ICON_CONTENT,text);
                    Log.d(TAG, "onViewClicked: "+color+"\n"+text);
                    setResult(Activity.RESULT_OK,intent);
                    finish();



3.界面一

先判断是否成功,再根据是哪个家伙,再为哪个家伙做对应的事

@RequiresApi(api = Build.VERSION_CODES.M)
        @Override
        public void onActivityResult ( int requestCode, int resultCode, @Nullable Intent data)
        {//跳转过去的界面,返回码是否正确,带值
            super.onActivityResult(requestCode, resultCode, data);
            this.requestCode = requestCode;//成员变量
//        Toast.makeText(context, "onActivityResult", Toast.LENGTH_SHORT).show();
            if (resultCode == Activity.RESULT_OK) {
                if (requestCode == ConstantsUtils.REQUEST_CODE_TEXT_ICON) {

                    Log.d(TAG, "onActivityResult: " + data.getIntExtra(ConstantsUtils.INTENT_COLOR, 0));
                    //TODO:为控件设置图片
                    //获取文字,颜色
                    String text = data.getStringExtra(ConstantsUtils.INTENT_TEXT_ICON_CONTENT);
                    int color = data.getIntExtra(ConstantsUtils.INTENT_COLOR, 0xFFFFFF00);
                    Log.d(TAG, "onActivityResult: " + text + "\n" + color);
                    //建立文字图标
//                    bitmap = UtilsBitmapText.textAsBitmap4(text, 200, color);
                    bitmap = UtilsBitmapText.textAsBitmap4(text, ConstantsUtils.TEXT_ICON_SIZE, color);
                    mIvMainNew.setImageBitmap(bitmap);//设置图标
                    //bitmap图片太大,显示不了
//                data.getLongExtra()

                }
            }
        }



版权声明:本文为sunweihao2019原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。