监听事件
1:内部类的监听事件
package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Button loginButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); /** * 找到名字为button1的button的Button */ loginButton = (Button) findViewById(R.id.button1); /** * 监听事件通过匿名内部类实现 */ loginButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 在当前方法中监听点击Button的动作 System.out.println("我的Button被点击了"); //然后在控制台就可以看到这句话输出了 } }); } }
2:自定义外部类的方式实现监听按钮
主文件代码如下:
package com.thinker.onclicklistener; import android.app.Activity; import android.os.Bundle; import android.text.style.SuperscriptSpan; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; //一定要注意我们用的 OnClickListener是在这个包下的,如果导入包错误 ,就不一样咯 import android.widget.Button; import android.widget.Toast; //Toast的功能是暂时显示一段提示,过一段时间就会消失 public class MainActivity extends Activity { private Button bt1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化Button bt1 = (Button) findViewById(R.id.button1); //为Button设置监听器 bt1.setOnClickListener(new MyOnClickListener(){ //输入 oncl然后 alt+/回车 ,自然会看到自动补全的方法 @Override public void onClick(View arg0) { // TODO Auto-generated method stub super.onClick(arg0); Toast.makeText(MainActivity.this, "bt1要执行的逻辑 ", 1).show(); } }); } } class MyOnClickListener implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Log.i("tag", "父类的OnClick事件"); } }
3:接口方式监听按钮
package com.example.helloandroid; import android.app.Activity; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageButton; public class MainActivity extends Activity implements android.view.View.OnClickListener{private ImageButton imbt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imbt = (ImageButton) findViewById(R.id.imageButton1); imbt.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub Log.i("tag", "第三种方式"); } }