我正在开展一项包含2项活动的应用程序。 secondActivity向主要信息提供信息,我必须多次访问SecondActivity。问题是第一次一切正常但第二次布局(secondActivity)没有出现。触摸事件响应,但我有一个黑屏(我可以获得信息共享,我回到我的mainActivity)...
这是我的第二个活动
public class SecondActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
}
@Override
public boolean onTouchEvent(MotionEvent e) {
String setData="machin";
Intent person = new Intent();
Bundle backpack = new Bundle();
backpack.putString("answer", setData);
person.putExtras(backpack);
setResult(RESULT_OK, person);
finish();
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}
我在这里称之为
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, 0);
目前数据共享是juste已设置的字符串,但它只是测试我的两个活动是否可以通信。
修改
我有变化
public boolean onTouchEvent(MotionEvent e) {
String setData="machin";
Intent person = new Intent();
Bundle backpack = new Bundle();
backpack.putString("answer", setData);
person.putExtras(backpack);
setResult(RESULT_OK, person);
finish();
return true;
}
进入
public boolean onTouchEvent(MotionEvent e) {
String setData="machin";
Intent person = new Intent(this, MainActivity.class);
person.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
person.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Bundle backpack = new Bundle();
backpack.putString("answer", setData);
person.putExtras(backpack);
setResult(RESULT_OK, person);
//finish();
startActivity(person);
return true;
}
现在每次都会出现布局,但我无法获得信息共享(我认为这是因为我没有调用finish(),但如果你知道另一种方法可以做到这一点......)
编辑2 感谢Priya的工作
我的SecondActivity
public boolean onTouchEvent(MotionEvent e) {
String setData="machin";
Intent person = new Intent(this, MainActivity.class);
person.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
person.putExtra("name",setData);
setResult(RESULT_OK, person);
startActivity(person);
return true;
}
我的MainActivity
protected void onResume(){
Intent intent = getIntent();
if(intent!=null){
String name = intent.getStringExtra("name");
Log.d("fdjsfdjksf","fdjskhfkdjshf"+name);
}
}