我对这两个班级之间的差异感到好奇。 我的代码是......
main_button.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Log.d(MAINBOTTOM_FRAGMENT_TAG,"main button clicked!");
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fblogin_Fragment = new FbLoginFragment();
fragmentTransaction.replace(R.id.frag_container, fblogin_Fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
setting_button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Log.d(MAINBOTTOM_FRAGMENT_TAG,"setting button clicked!");
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(
setting_Fragment = new SettingFragment();
fragmentTransaction.replace(R.id.frag_container,setting_Fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
项目运行良好,没什么特别的。但是,我有点困惑哪一个使用它。 OnClickListener或View.OnClickListener? 感谢。
答案 0 :(得分:4)
如果您导入View.OnClickListener
,则两者都会引用同一个类,并且工作方式相同。
View.OnClickListener
经常被用来区分DialogInterface.OnClickListener
。
答案 1 :(得分:0)
View.OnClickListener
is an interface,您没有调用它,但会创建一个新实例(new View.OnClickListener()
是对构造函数的调用)
您创建的实例是anonymous class implements
View.OnClickListener
,位于new View.OnClickListener()
任何实现View.OnClickListener
的类都必须实现其中声明的方法(例如onClick)
setOnClickListener
只保存对您提供的View.OnClickListener实例的引用,当有人单击该按钮时,您设置的侦听器的onClick
方法将被调用。