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;
}