匿名内部类
假设控件是loginButton
1. 初始化控件
private Button loginButton = (Button)findViewById(R.id.button1)
在ui界面的时候当拖入Button就会在R文件中生成对应名字(假设是button1的)的ID, 在findViewById中找到对应的ID, 并返回view类, 再强制转化为Button
2. 设置Button的监听器,通过实现监听器实现点击Button的逻辑
loginButton.setOnClickListenner(new OnClickListenner() {
@Override
public void onClick(View arg0) {
System.out.println("我的Button被点击了");
}
});
外部类实现
通过在外部再写一个类来实现它的逻辑
package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt1 = (Button)findViewById(R.id.button1);
Button bt2 = (Button)findViewById(R.id.button2);
bt1.setOnClickListener(new MyOnClickListener() {
@Override
public void onClick(View v) {
super.onClick(v);
Toast.makeText(MainActivity.this, "bt1要执行的逻辑", 1).show();
}
});
bt2.setOnClickListener(new MyOnClickListener() {
@Override
public void onClick(View v) {
super.onClick(v);
Toast.makeText(MainActivity.this, "bt2要执行的逻辑", 1).show();
}
});
}
}
class MyOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setAlpha(0.5f);
}
}
接口方式
用接口来是实现它的逻辑
package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt1 = (Button)findViewById(R.id.button1);
Button bt2 = (Button)findViewById(R.id.button2);
bt1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("tag", "接口方式实现监听事件");
}
}