Fragment 中的按钮 setOnClickListener onCreateView() 或 onActivityCreated()

2024-02-25

通过这个答案 https://stackoverflow.com/a/32656807/3838663我不明白该把我的东西放在哪里onClickListener()- 里面onCreateView()或里面onActivityCreated(),下面的代码更好地描述了它:

CODE A:(在里面设置按钮点击监听器onActivityCreated())

  private FloatingActionButton bt;      

  @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              // do something.
            }
        });
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.first_frag, container, false);
        bt = (FloatingActionButton) v.findViewById(R.id.fab);
        return v;
    }

CODE B:(在里面设置按钮点击监听器onCreateView())

    private FloatingActionButton bt;      

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.first_frag, container, false);
        bt = (FloatingActionButton) v.findViewById(R.id.fab);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              // do something.
            }
        });            
        return v;
    }

由于我的英语不好,我可能不明白哪个代码更好,无论如何,谢谢大家:)


据我所知,两者都不会产生任何影响。一旦视图膨胀,您可以将其放在任何位置onCreateView() or in onActivityCreated().

毕竟,为了绑定视图和设置点击侦听器,onViewCreated()是一个更好的候选者,因为它将在之后立即被调用onCreateView。它清楚地表明您的view已经膨胀了。

没有具体的原因或规则。谷歌本身没有 https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/feedback/SessionFeedbackFragment.java非常关心about it https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/session/SessionDetailFragment.java。根据经验,一旦视图膨胀,您可以将其放置在任何您想要的地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fragment 中的按钮 setOnClickListener onCreateView() 或 onActivityCreated() 的相关文章