1,匿名内部类实现
public class MainActivity extends ActionBarActivity {
/*
* Button--可以设置文本内容的一个按钮;
* ImageButton--不可以设置文本内容,
* background及 s r c 属性添加一个image
* 当前图片上可以做一个有文本内容的图片
*/
private Button loginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* 1.初始化 当前所需要的控件,如何初始化一个控件
* findViewById--返回需要一个View对象;
* findViewById是如何找到相对应的View的Id?
*
* 在Android的res目录文件下所有的文件 ,都会在gen目录中
* 的R.java中自动生成相对应的信息
*
* 2.设置Button的监听器,通过监听器实现我们点击Button的效果
*
*/
//获取按钮资源
loginButton =(Button) findViewById(R.id.button1);
//匿名内部类来实现监听事件
loginButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//在当前onClick方法中监听点击Button的动作;
System.out.println("我的Button被点击了!");
}
});
}
}
2,外部类实现
bt1.setOnClickListener(new MyOnClickListener(){
@Override
public void onClick(View v){
super.onClick(v);
Toast.makeText(OutClassActivity.this, "bt1要执行的逻辑", 1).show();
}
});
bt2.setOnClickListener(new MyOnClickListener(){
@Override
public void onClick(View v){
super.onClick(v);
Toast.makeText(OutClassActivity.this, "bt2要执行的逻辑", 1).show();
}
});
}
}
/*
* OnClickListener 是 View包下的一个接口
*/
class MyOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {
//让所有使用当前外部类的点击事件的按钮都要做出一个动作,改变button本身的透明;
v.setAlpha(0.5f);
}
}
3,接口方式实现
public class InterfaceActivity extends Activity implements OnClickListener{
private ImageButton ibt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_interface);
ibt = (ImageButton) findViewById(R.id.imageButton1);
ibt.setOnClickListener(this);
}
@Override
public void onClick(View v) {
System.out.println("接口实现");;
}
}
还有一种是在xml中添加控件的onClick属性
<Button
android:layout_width="60dp"
android:layout_height="60dp"
android:id="@+id/btn_jing"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:text="#"
android:onClick="onclick"
android:background="@android:color/darker_gray"
android:gravity="center"
/>
//然后在MainActivity中 构建方法
public onclick(View v){
//在写要执行的内容;
Toast.makeText(OutClassActivity.this, "我是#号", 1).show();
}