2017-07-31 34 views
-2

我有两个活动。主要活动和儿童活动。当我按下按钮时,儿童活动从此处启动。我想发送一些数据回主屏幕。我用startActivityForResult,但工作,但每次我收集数据时,它显示的数据先前的数据(即先前的数据没有得到清除,当我再次发送新的数据..形式像堆栈)?如何清除以前的数据,每次发送新数据。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); 


} 

SecondActivity

@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(); 

     } 
    }); 
} 
+0

后你是怎么做的 –

+0

如果你想通过简单的数据使用捆绑,并把它的意图内,然后把它拿来子活动

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

。 –

+0

欢迎来到SO!请使用您所做的代码编辑您的问题,以便其他人可以轻松帮助您!谢谢。 –

回答

2

您也可以发送数据这样的..

在主要活动

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