Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android startActivityForResult每次发送新数据时显示以前数据的数据_Android - Fatal编程技术网

Android startActivityForResult每次发送新数据时显示以前数据的数据

Android startActivityForResult每次发送新数据时显示以前数据的数据,android,Android,我有两项活动。主要活动和儿童活动。当我按下按钮时,子活动从这里启动。我想把一些数据发送回主屏幕。我使用了startActivityForResult,但它仍在工作,但每次收集数据时,它都会显示以前数据上的数据(即,当我再次发送新数据时,以前的数据没有被清除。它的形式类似于堆栈)?如何在每次发送新数据时清除以前的数据 MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.

我有两项活动。主要活动和儿童活动。当我按下按钮时,子活动从这里启动。我想把一些数据发送回主屏幕。我使用了startActivityForResult,但它仍在工作,但每次收集数据时,它都会显示以前数据上的数据(即,当我再次发送新数据时,以前的数据没有被清除。它的形式类似于堆栈)?如何在每次发送新数据时清除以前的数据

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    relativeLayout = (RelativeLayout) findViewById(R.id.rl_image);

    ivLauncher = (ImageView) findViewById(R.id.iv_launcher);
    relativeLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivityForResult(new Intent(MainActivity.this, SecondActivity.class), 1002);

        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1002) {
        String duty = data.getStringExtra("WHICH");
        if (duty.equalsIgnoreCase("flag")) {

            ivLauncher.setImageResource(R.drawable.ic_assistant);

        } else if (duty.equalsIgnoreCase("music")) {
            ivLauncher.setImageResource(R.drawable.ic_audiotrack);

        } else if (duty.equalsIgnoreCase("moon")) {
            ivLauncher.setImageResource(R.drawable.ic_brightness);

        }
    }
    super.onActivityResult(requestCode, resultCode, data);


}
第二项活动

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    rlMoon = (RelativeLayout) findViewById(R.id.rl_moon);
    rlMoon.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent i = new Intent(SecondActivity.this, MainActivity.class);
            i.putExtra("WHICH", "moon");
            setResult(1002, i);
            finish();
        }
    });
    rlMusic = (RelativeLayout) findViewById(R.id.rl_music);
    rlMusic.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent i = new Intent(SecondActivity.this, MainActivity.class);
            i.putExtra("WHICH", "music");
            setResult(1002, i);
            finish();

        }
    });
    rlFlag = (RelativeLayout) findViewById(R.id.rl_flag);
    rlFlag.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent i = new Intent(SecondActivity.this, MainActivity.class);
            i.putExtra("WHICH", "flag");
            setResult(1002, i);
            finish();

        }
    });
}

您也可以像这样发送数据

在儿童活动中

@Override
public void onBackPressed() {
String data = mEditText.getText();
Intent intent = new Intent();
intent.putExtra("Data", data);
setResult(resultcode, intent);
}
主要活动

onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
    if(resultCode == RESULT_OK) {
        String myStr=data.getStringExtra("Data");
        mTextView.setText(myStr);
    }
}
}

发布你是如何做到的如果你想传递简单的数据使用包并将其放入意图中,然后获取它。欢迎使用SO!请用你完成的代码编辑你的问题,以便其他人可以轻松帮助你!谢谢。它在ivLauncher上显示所选图像,但在后台显示launcher图像,我放在这个相对布局上,所以我nt以在选择任何其他图像时清除该dafault图像