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]
我可能还不知道哪个代码更好,因为我的英语不好,无论如何,谢谢大家:)
答案 0 :(得分:2)
据我所知,两者都没有效果。视图夸大后,您可以将其放在onCreateView()
或onActivityCreated()
中的任意位置。
毕竟,对于绑定视图和设置点击监听器,onViewCreated()
是一个更好的候选者,因为它将在onCreateView
之后立即调用。它清楚地表明您的view
已被夸大了。
没有具体的理由或规则。 Google itself doesn't非常关注about it。根据经验,一旦视图膨胀,您可以将它放在任何您想要的位置。
答案 1 :(得分:0)
我建议将onClickListener放在onActivityCreated中。并将按钮绑定到onCreateView内的视图。就像你第一次在你的问题中做的一样。
要了解有关这些方法的更多信息,请参阅此post