【问题标题】:Android Studio | How to use On Click to switch between a fragment and activity安卓工作室 |如何使用 On Click 在片段和活动之间切换
【发布时间】:2017-06-23 19:58:43
【问题描述】:

我正在尝试使用按钮在我正在处理的片段和新活动之间切换。我正在使用 On Click 侦听器尝试切换。以及使用启动活动。我想我可能不得不使用片段管理器,但我不确定如何使用它。

这是我的代码。

addPlayers.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(TeamManagementFragment.this,AddPlayer.class));
    }
});

我收到的错误消息是“无法解析构造函数”

您的帮助将不胜感激 :)。 非常感谢, 爱德华。

【问题讨论】:

    标签: java android android-studio android-fragments android-activity


    【解决方案1】:

    我想AddPlayer 是一个活动。 所以你可以用getActivity()代替TeamManagementFragment.this

    【讨论】:

      【解决方案2】:

      假设AddPlayer 是您要开始的其他活动,请使用View v 参数中的上下文作为new Intent 创建的第一个参数,而不是使用当前的TeamManagementFragment 实例,因为它们不是有效的上下文。

      addPlayers.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              startActivity(new Intent(v.getContext(), AddPlayer.class));
          }
      });
      

      查看 Context 的文档页面以查看哪些类继承自它: https://developer.android.com/reference/android/content/Context.html

      【讨论】:

      • 佩蒂非常感谢!这对我有用!只是出于兴趣,我假设 v.getContext() 意味着它获得了它所在的视图?
      • 是的! v 参数实际上是点击了哪个视图,这是因为您可以将相同的 OnClickListener 应用于许多视图。在上面的示例中,v 将等于 addPlayers
      • 我已经完成了!我正在尝试在新的 Add Player Activity 和 Team Management 片段之间切换回来。 startActivity(Intent(v.getContext(),TeamManagementFragment.class));我的错误说它无法解析方法。
      • 只需返回您之前进行的活动,您可能想从另一个问题中查看此答案:stackoverflow.com/a/10407371/794088
      【解决方案3】:

      好吧,我猜你没有得到活动和片段的概念。片段基本上是由活动托管的视图,只要容器活动存在,它就一直存在。您不能使用意图在这两者之间切换。

      【讨论】:

        【解决方案4】:

        在片段中试试这个:

        addPlayers.setOnClickListener(new View.OnClickListener() {
        @Override public void onClick(View v) { 
            getActivity().startActivity(new Intent(getActivity(),AddPlayer.class)); 
            } 
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-24
          • 1970-01-01
          相关资源
          最近更新 更多