一.内部监听点击事件:
如图,先在页面中做一个按钮,并且赋给这个按钮一个ID,我这里是:buttonIn,然后这个ID会自动在R中添加,接下来我们看一下java代码,如下:
public class MainActivity extends AppCompatActivity {
private Button buttonIn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonIn = (Button) findViewById(R.id.buttonIn);
buttonIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"内部监听事件",Toast.LENGTH_LONG).show();
}
});
}
}
分析一下,下图中我圈出来的是我添加的,其他代码不用看,因为我们在用eclipse或者Android studio时,很多是会自动生成的。
首先我们初始化一个名为buttonIn的Button 按钮, 然后我们用findViewById在R中找到这个id。然后对这个对象进行事件绑定。
buttonIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"内部监听事件",Toast.LENGTH_LONG).show();
}
});
二.外部类点击事件监听
第二种就是外部类的点击事件监听,我们来看一下,先写一个按钮,如下
然后我们看下代码
public class MainActivity extends AppCompatActivity {
private Button buttonOut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonOut =(Button) findViewById(R.id.butttonOut);
buttonOut.setOnClickListener(new myOnclicklistener() {
@Override
public void onClick(View v) {
super.onClick(v);
Toast.makeText(MainActivity.this,"外部类的事件绑定",Toast.LENGTH_LONG).show();
}
});
}
}
外部类:
abstract class myOnclicklistener implements View.OnClickListener{
@Override
public void onClick(View v) {
Log.i("console","这个是父类方法");
}
}
先看看效果:
可以看到我们已经成功实现这个功能,看看这个Onclick方法,我们可以实现父类的Onclick方法,通过super.Onclick来实现,当然也可以不实现,重新写这个方法也是可以的。用外部类的好处就是:当我们多处地方需要执行同一个动作的时候,就可以用到外部类的监听,这样可以省写很多代码。
最近在学安卓,先写这么多了,后续如果发现有其他方法我再补补。