自定义 ListView 上的 StartActivityForResult

StartActivityForResult on a custom ListView

如何根据自定义 listView 执行 startActivityForResult
这是我的代码:

((Activity) context).startActivityForResult(intent, 100);

我应该把 onActivityResult 方法放在哪里?

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}

列表视图显示在我的 MainActivity 中,那么我将方法放在哪里 onActivityResult?在 MainActivity ??

您应该覆盖 MainActivity 中的 onActivityResult。当第二个 Activity 完成时,它将被调用。阅读此链接:https://developer.android.com/training/basics/intents/result.html?hl=en

class MainActivity extends ... {
...
  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
  }
...

我假定您的 activity 名为 MainActivity。那么你应该这样做

((MainActivity) context).startActivityForResult(intent, 100);

然后在您的 MainActivity 中覆盖 onActivityResult。

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100){
//do your things
}
}

您应该覆盖 MainActivity 中的 onActivityResult(int requestCode, int resultCode, Intent data)。如果您使用 activity 上下文从 MainActivity 调用适配器,那么您可以删除不需要的 activity 转换。

适配器代码可以更改为

context.startActivityForResult(intent, 100);