Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按钮setOnClickListener onCreateView()或onActivityCreated()在片段中_Android - Fatal编程技术网

Android 按钮setOnClickListener onCreateView()或onActivityCreated()在片段中

Android 按钮setOnClickListener onCreateView()或onActivityCreated()在片段中,android,Android,我不明白将我的onClickListener()-放在onCreateView()内还是放在onActivityCreated()内,下面的代码更好地描述了它: 代码A:(设置按钮单击ActivityCreated()中的侦听器 代码B:(设置按钮单击监听器内部的onCreateView()) 我可能不明白哪种代码更好,因为我的英语很差,无论如何,谢谢大家:)我建议将onClickListener放在onActivityCreated中。以及将按钮绑定到onCreateView内部的视图。就像你

我不明白将我的
onClickListener()
-放在
onCreateView()
内还是放在
onActivityCreated()
内,下面的代码更好地描述了它:

代码A:(设置按钮单击ActivityCreated()中的侦听器

代码B:(设置按钮单击监听器内部的onCreateView()


我可能不明白哪种代码更好,因为我的英语很差,无论如何,谢谢大家:)

我建议将onClickListener放在onActivityCreated中。以及将按钮绑定到onCreateView内部的视图。就像你第一次在问题中所做的那样


要了解更多有关方法的信息,请阅读此

据我所知,这两种方法均无效。视图膨胀后,您可以将其放置在
onCreateView()
onActivityCreated()
中的任何位置

毕竟,对于绑定视图和设置单击侦听器,
onViewCreated()
是更好的选择,因为它将在
onCreateView
之后立即调用。它清楚地表明您的
视图已被夸大


没有具体的原因或规则。谷歌非常关心。根据经验,一旦视图膨胀,您可以将其放在任何您想要的地方

在代码A中,您仍然在onCreateView()中初始化bt,因此,我不明白您为什么不想在那里设置click listener。据我所知,这两种设置都没有效果。一旦视图膨胀,您可以将其放在onCreateView()或onActivityCreated()中的任何位置。有任何支持此操作的具体原因吗?好的,谢谢。另外,你能举一个例子说明我需要在activitycreated()内部调用的东西吗?@DAVIDBALAS1—使用加载程序管理器的任何东西。如果您需要“活动”视图层次结构中的任何其他内容,如工具栏或浮动ActionButton@davidbalas1,您可以从中单独提问。你们将从社区得到答案。我的意思是我现在没空。@KrupalShah谢谢。)@阿尔斯通:是的。最好检查来源。
  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;
    }
    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;
    }