【问题标题】:On returning to previous fragment inside onCreateView fires Button onClick()返回到 onCreateView 中的上一个片段时会触发 Button onClick()
【发布时间】:2021-09-20 15:29:39
【问题描述】:

我有两个片段,A 和 B。

从片段 A 调用片段 B:

B nextFrag = new B();
nextFrag.setArguments(bundleobj);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.nav_host_fragment, nextFrag); 
transaction.addToBackStack(null);  
transaction.commit();

用户按下返回按钮时的片段 B:

FragmentManager fm = getFragmentManager();
fm.popBackStackImmediate();

然后片段 A 被加载,onCreateView 被调用并且在 onCreateView 里面我有一个按钮:

doSomethingBtn..setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
}
});

这里的问题是返回片段A时触发了onClick。

如何预防?

【问题讨论】:

    标签: android android-fragments fragment


    【解决方案1】:

    不要将嵌套的OnClickListener 添加到您的按钮引用中,而是在您的类中实现它并覆盖该方法以包含基于所单击视图 ID 的 switch case。请记住将您的按钮更改为doSomethingBtn.setOnClickListener(this);,看看是否可以解决您的问题。如果没有,我们可能需要从您的实际代码中获取更多的 sn-ps 才能找到原因。

    【讨论】:

      猜你喜欢
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多