第一种:不便于管理。
<Button android:id="@+id/btn_Gridlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="用网格布局实现注册" android:onClick="gridLayout"/>
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) {//视图加载后第一个调用的方法,Activity自动创建,不能new,可以调用方法启动他, super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//设置Activity的布局,显示Activity的布局 findViewById(R.id.rbFemale);//在R这个类的id这个内部类找这个值,然后找到这个id标识的东西,返回值是View } //onClick值是gridLayout的按钮的点击事件响应的方法 public void gridLayout(View v){//v是点的按钮,view是所有控件的父类 Log.i("main",((Button)v).getText().toString()); setContentView(R.layout.gridlayout); } }
第二种:匿名内部类,如果只是用一次则用这种,这不便于代码的复用。
第三种:有名内部类,代码有复用性。
第四种:Activity实现click接口,
public void onClick(View v) {//View是所有布局的基类 switch (v.getId()) { case R.id.btnLogin: Toast.makeText(this, "执行登陆操作", 2000).show(); break; case R.id.btnExit: finish(); break; } }
用于按钮很多,而且每个点击事件的代码不多的时候用,如果代码很多,把swith变的很大就不适合用了。
第五种:外部类,具有复用性,有利于代码的混淆。