2017-07-31 39 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); 
    } 
} 
}