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

时间:2016-08-28 18:48:10

标签: android

by this answer 我无法理解将onClickListener()放在onCreateView()内部onActivityCreated()onActivityCreated()内部,以下代码更好地描述了它:

代码A:(在 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; } 内设置按钮点击监听器)

onCreateView()

代码B:(在 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; } 内设置按钮点击监听器)

[Android.App.Application]

我可能还不知道哪个代码更好,因为我的英语不好,无论如何,谢谢大家:)

2 个答案:

答案 0 :(得分:2)

据我所知,两者都没有效果。视图夸大后,您可以将其放在onCreateView()onActivityCreated()中的任意位置。

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

没有具体的理由或规则。 Google itself doesn't非常关注about it。根据经验,一旦视图膨胀,您可以将它放在任何您想要的位置。

答案 1 :(得分:0)

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

要了解有关这些方法的更多信息,请参阅此post