【问题标题】:How to move from a one fragment to an activity如何从一个片段移动到一个活动
【发布时间】:2015-05-11 18:43:22
【问题描述】:

我正在为片段处理 CustomListView 和 CustomAdapter 扩展自 BaseAdapter 。在我的CustomAdapter 中有一个按钮单击该按钮我想移动一个活动,但我不知道如何从一个片段切换到一个活动。

【问题讨论】:

  • 1) 适配器不能有 Button 或任何其他类型的 View,2) 你不能移动 Activity 3) 那么你到底想实现什么?
  • 他想移动到一个活动,我想而不是移动一个活动:)
  • “移动到一个活动”?您既不能移动 Activity 也不能移动到 Activity...您可以做的是启动 Activity...
  • 这不是语法课!他想开始一个新的活动。你需要睡眠伴侣:)
  • @Skynet 我在 customadapter 中有一个 textView,我想从中移动到另一个活动,我可以移动还是不移动。

标签: android fragment


【解决方案1】:

试试这个:

private void moveToNewActivity () {

    Intent i = new Intent(getActivity(), DetailActivity.class);
    startActivity(i);
    ((Activity) getActivity()).overridePendingTransition(0, 0);

}

overridePendingTransition(0,0); 表示没有动画过渡。

Check This,它将让您大致了解如何使用 onClickListener 从 Fragment 中启动新的 Activity。

【讨论】:

  • startActivity 方法不能像你说的那样在片段中访问。它必须使用使用 getActivity() 返回的上下文调用此方法。
  • 我在一个下载量约为 10000 的生产项目中使用上述代码,但没有发现任何问题。如果您可以考虑通读,它会提供上下文。
  • 是的,但不在扩展 Fragment 的类而不是扩展 Activity 的类中
  • 在扩展 Fragment 的类内部。试试这个:)
【解决方案2】:

如果有人在 Kotlin 中使用数据绑定查找此内容,请在您的 Fragment 类中执行此操作:

binding.openActivityButton.setOnClickListener {
    val intent = Intent(this@YourFragmentName.requireContext(), YourActivityName::class.java)
    startActivity(intent)
}

将YourFragmentName 替换为您的片段名称,将YourActivityName 替换为您的活动名称。

【讨论】:

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