1 成员内部类的实现方式
XML:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.jiang.firstapplication.MainActivity"> <!--为控件设置id属性方便调用--> <Button android:id="@+id/bt_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="按钮"/> </LinearLayout>
activity: public class MainActivity extends AppCompatActivity { Button bt1;//1,定义成员变量 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1 = (Button) findViewById(R.id.bt_1);//2,绑定控件 bt1.setOnClickListener(new myOnClickListener());//4,绑定监听器 } // 3,创建成员内部类 class myOnClickListener implements View.OnClickListener{ @Override//重写成员方法 public void onClick(View view) { Toast.makeText(MainActivity.this,"按钮被点击",Toast.LENGTH_LONG).show();//打印被点击效果 } } }
2 匿名内部类的实现方法
public class MainActivity extends AppCompatActivity { Button bt1;//1,定义成员变量 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1 = (Button) findViewById(R.id.bt_1);//2,绑定控件 bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this,"按钮被点击",Toast.LENGTH_LONG).show();//打印被点击效果 } });//3,绑定监听器 } }
3 activity的实现方法
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ Button bt1;//1,定义成员变量 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1 = (Button) findViewById(R.id.bt_1);//2,绑定控件 bt1.setOnClickListener(this);//4,绑定监听器 } @Override//3,重写onClick方法 public void onClick(View view) { Toast.makeText(MainActivity.this,"按钮被点击",Toast.LENGTH_LONG).show();//打印被点击效果 } }
4 XML中实现点击
XML文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.jiang.firstapplication.MainActivity"> <!--为控件设置id属性方便调用,添加onClick方法--> <Button android:id="@+id/bt_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="按钮" android:onClick="onClick"/> </LinearLayout>
activity文件:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //1,实现XML中的onClick方法,须为public修饰,返回值为void,传入参数为view public void onClick(View view) { Toast.makeText(MainActivity.this,"按钮被点击",Toast.LENGTH_LONG).show();//打印被点击效果 }
}