【问题标题】:Hot to navigate to activity from fragment热门从片段导航到活动
【发布时间】:2021-09-06 17:30:06
【问题描述】:

这是我的第一篇文章,所以我会尽力解释自己。

这是我在 android 中使用 kotlin 的第一个项目,我创建了一个带有 3 个选项卡的简单应用程序。我试图从与 3 个选项卡视图关联的 3 个片段之一中的按钮到新活动进行简单的导航。此按钮具有关联的“推送”功能。

我附上了片段中的代码,您可以在其中看到导航“推送”的功能,该功能启动新活动。如果我将该函数放在 onCreateView 部分,当我输入片段时它可以正常工作。我使用类似的按钮和功能从一个活动导航到另一个活动没有问题,但我不知道片段是如何正常工作的,所以我想我缺少与它们相关的东西。似乎该函数在 onCreate 部分之外无法识别,所以也许我必须以另一种方式声明它:


类 NotificationsFragment : Fragment() {

private var _binding: FragmentNotificationsBinding? = null

override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?

): View {
    _binding = FragmentNotificationsBinding.inflate(inflater, container, false)
    return binding.root
}

private val binding get() = _binding!!

fun push(view: View) {
    val intent = Intent(activity, tutorialPrueba::class.java)
    startActivity(intent)
}

override fun onDestroyView() {
    super.onDestroyView()
    _binding = null
}

}


在这种情况下,我找不到任何可以帮助我的解决方案。只要这是我的第一篇文章,我将感谢任何与我发布的方式相关的帮助或建议,或者我如何使它变得更好。也对不起我的英语不好。

提前致谢。

【问题讨论】:

    标签: android-studio kotlin android-fragments navigation fragment


    【解决方案1】:

    如果您使用 DataBinding,则布局 xml 中声明的 onClick 不起作用。因此,要使按钮在按下后调用您的方法,您必须这样做:

    private var _binding: FragmentNotificationsBinding? = null
    
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    
    ): View {
        _binding = FragmentNotificationsBinding.inflate(inflater, container, false)
        _binding.idOfButtonToPress.setOnClickListener{ //replace idOfButtonToPress with the real android:id of button
           push()
        }
        return binding.root
    }
    
    private val binding get() = _binding!!
    
    fun push() {
        val intent = Intent(activity, tutorialPrueba::class.java)
        startActivity(intent)
    }
    
    override fun onDestroyView() {
        super.onDestroyView()
        _binding = null
    }
    

    【讨论】:

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