【问题标题】:StartActivityForResult on a custom ListView自定义 ListView 上的 StartActivityForResult
【发布时间】:2017-12-01 08:39:57
【问题描述】:

如何从自定义listView 中创建startActivityForResult?
这是我的代码:

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

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

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

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

【问题讨论】:

  • onActivityResult 应该在 MainActivity 中被覆盖
  • onActivityResult 方法属于 Activity 类。因此,不可能在任何地方覆盖该功能(RecyclerView 适配器)。这里似乎有什么问题?
  • @RohitSingh 请注意,片段也有一个 onActivityResult。他们的宿主 Activity 会将其转发给名为 startActivityForResult 的片段
  • 我们可以在扩展 Fragment 类的类中覆盖 onActivityResult 吗?或者您的意思是我们通过制作 interface 使用的回调方法。 @RobCo
  • 是的,前者。 onActivityResult 可以在(支持)片段子类中被覆盖。您只需要确保您还在该片段而不是父活动上调用 startActivityForResult。 @RohitSingh

标签: java android listview adapter


【解决方案1】:

我假设您的活动名称为 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
}
}

【讨论】:

    【解决方案2】:

    您应该在 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);
      }
    ...
    

    【讨论】:

      【解决方案3】:

      您应该在 MainActivity 中覆盖 onActivityResult(int requestCode, int resultCode, Intent data)。如果您使用活动上下文从 MainActivity 调用适配器,则可以删除不需要的活动投射。

      适配器代码可以改为

      context.startActivityForResult(intent, 100); 
      

      【讨论】:

        猜你喜欢
        • 2011-06-10
        • 1970-01-01
        • 1970-01-01
        • 2015-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-23
        相关资源
        最近更新 更多