在我的应用程序中,我需要启动SelectionActivity来选择其中一个选项。选择该选项后,我需要刷新MainActivity上的另一个列表。
这是我用来启动SelectionActivity的代码:
Intent intent = new Intent(MainActivity.this, SelectionActivity.class);
startActivity(intent);
在SelectionActivity中,这是接收所选选项并关闭活动的代码:
selectedValue = adapter.getItem(position);
finish();
现在应用程序回到MainActivity,但我不知道如何接收SelectionActivity已关闭的事件。
由于
答案 0 :(得分:12)
显示使用startActivityForResult的快速代码段:
private static final int MY_REQUEST_CODE = 0xe110; // Or whatever number you want
// ensure it's unique compared to other activity request codes you use
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == MY_REQUEST_CODE)
ActiviyFinishedNowDoSomethingAmazing();
}
public void onClickStartMyActivity(View view)
{
startActivityForResult(new Intent(this, GameActivity.class), MY_REQUEST_CODE);
}
答案 1 :(得分:1)
根据应用程序的设计,每次返回Main活动时都可以通过观察onResume()或onRestart()事件来刷新列表。另外还有startActivityForResult()。所有这些方法都在Activity中。
答案 2 :(得分:1)
解决方案1:
selectedValue
成为静态公共变量。在MainActivity
:
void onResume() {
result = SelectionActivity.selectedValue;
}
解决方案2:
如果SelectionActivity
的工作只是多个选项的选择,请考虑使用Dialogs
答案 3 :(得分:0)
startActivityForResult(),然后覆盖onActivityResult()方法。有很多例子可以谷歌只使用关键词startactivityforresult。
答案 4 :(得分:0)
使用onActivityResult()或使selectedValue为静态。在MainActivity中使用onResume方法:
protected void onResume() {
if(SelectionActivity.selectedValue != 0)
newValue = SelectionActivity.selectedValue;
}
答案 5 :(得分:0)
答案 6 :(得分:0)
使用onDestroy
:
public void onDestroy() {
super.onDestroy();
Log.w("test", "active");
}