1.普通内部类(常用)
xml
java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridexlayout); //添加监听器 //监听器 本身是一个接口,需要写实现类 Button bt_reset = (Button)findViewById(R.id.reset); //第一种 设置监听器的实现类的实例 bt_reset.setOnClickListener(new ResetButtonClickListen()); } //1.用内部类实现监听器的接口 private class ResetButtonClickListen implements View.OnClickListener { public void onClick(View v) { Button bt = (Button)v; String str = bt.getText().toString(); //在内部类里调用外部类的实例:外部类的类名.this Toast.makeText(MainActivity.this,str+"click",Toast.LENGTH_LONG).show(); } }}
2.匿名内部类
java
public class MainActivity extends AppCompatActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridexlayout); Button bt_reset = (Button)findViewById(R.id.reset); //第二种 匿名内部类 bt_reset.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { Button bt = (Button)v; String str = bt.getText().toString(); //在内部类里调用外部类的实例:外部类的类名.this Toast.makeText(MainActivity.this,str+"click",Toast.LENGTH_LONG).show(); } });}
3.外部类
java
public class MainActivity extends AppCompatActivity { //public class MainActivity extends AppCompatActivity implements View.OnClickListener { //bt_reset.setOnClickListener(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridexlayout); //添加监听器 //监听器 本身是一个接口,需要写实现类 Button bt_reset = (Button)findViewById(R.id.reset); //第三种 外部类 //bt_reset.setOnClickListener(new WaibuListener()); }}
java2
package com.example.chenshuai.test322;import android.view.View;import android.widget.Button;/** * Created by chenshuai on 2016/3/26. */public class WaibuListener implements View.OnClickListener { public void onClick(View v) { Button bt = (Button)v; String str = bt.getText().toString(); }}
4.直接绑到标签上
xml
java
public class MainActivity extends AppCompatActivity { //public class MainActivity extends AppCompatActivity implements View.OnClickListener { //bt_reset.setOnClickListener(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridexlayout); //添加监听器 //监听器 本身是一个接口,需要写实现类 Button bt_reset = (Button)findViewById(R.id.reset);//传递的View参数 是触发这个事件视图实例(在这里是Button) public void onclick(View v) { Button bt = (Button)v; String str = bt.getText().toString(); Toast.makeText(this,str+"Button click",Toast.LENGTH_LONG).show(); }}
5.Avtivity直接实现
java
public class MainActivity extends AppCompatActivity implements View.OnClickListener { bt_reset.setOnClickListener(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridexlayout); //添加监听器 //监听器 本身是一个接口,需要写实现类 Button bt_reset = (Button)findViewById(R.id.reset); } }