Android攻城狮—监听(按钮)点击事件
博客专区 > iBazinga 的博客 > 博客详情
Android攻城狮—监听(按钮)点击事件
iBazinga 发表于1年前
Android攻城狮—监听(按钮)点击事件
  • 发表于 1年前
  • 阅读 16
  • 收藏 0
  • 点赞 0
  • 评论 0

onClick事件

  • 所有的控件都有一个onClick事件,包括Button和ImageButton。
    • 通过自身的.setOnClickListener(OnClickListener)方法添加点击事件
  • 通过点击事件的监听可以实现点击按钮之后要发生什么动作

监听事件的实现方法

  • 匿名内部类的实现
  • public class MainActivity extends Activity {
    /*
     * 第一种方式:匿名内部类
     */
        private Button wordButton;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		/*
    		 * 1.初始化当前所需的一个控件
    		 * findViewById --返回的是一个View的对象
    		 * 
    		 * 2.设置Button的监听器,通过监听器实现点击Button所要操作的事情
    		 */
    		wordButton = (Button)findViewById(R.id.button1);
            //之所以用(Button)是因为findViewById返回的是一个View的对象,"View是所有控件的一个父类"
    
    		wordButton.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View arg0) {
    				// 在当前onClick方法中监听Button的动作
    				System.out.println("我的按钮被点击了");
    			}
    		});
    		
    	}
    }
    

    运行结果>>监听到点击事件后执行类中的方法(即控制台输出“我的按钮被点击了”)。

  • 独立类的实现
  • /*
     *第二种方式:独立类
     */
    public class MainActivity extends Activity {
    	//Button对象
    	private Button wordButton;
    	private ImageButton imageButton;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    
    		wordButton = (Button)findViewById(R.id.button1);
    		wordButton.setOnClickListener(new MyClick() {
    			//调用父类的OnClick
    			@Override
    			public void onClick(View v){
    				super.onClick(v);
    				Toast.makeText(MainActivity.this,"wordbutoon", 1).show();
    			}
    
    		});
    		
    		imageButton = (ImageButton)findViewById(R.id.imageButton1);
    		imageButton.setOnClickListener(new MyClick() {
    			//调用父类的OnClick
    			@Override
    			public void onClick(View v){
    				super.onClick(v);
    				Toast.makeText(MainActivity.this,"imagebutoon", 1).show();
    			}
    
    		});
    
    	}	
    }
    
    /*
     * 独立类
     */
    class MyClick implements  OnClickListener{
    
    	@Override
    	public void onClick(View v) {
    		// 让所有试用当前外部类的点击事件的按钮都要做出一个动作(改变透明度)
    		v.setAlpha(0.5f);
    	}
    }
    //[实际应用]:需求让多个按钮实现同一种动作的时候,可用此方法,简化代码。
    

    运行结果>>监听到按钮点击事件后实现独立类中的方法(即点击按钮,透明度发生改变)。

  • 实现接口的方式来实现
  • /*
     * 第三种方式:接口
     */
    public class MainActivity extends Activity implements OnClickListener{
    	
    	private Button wordButton;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		wordButton = (Button)findViewById(R.id.button1);
    		wordButton.setOnClickListener(this);
    	}
    	
    
    	@Override
    	public void onClick(View arg0) {
    		Log.i("tog","第三种方式"); //Log用来打印日志
    	}	
    }
    

    运行结果>>监听到按钮点击事件后实现方法(即打印日志)。

标签: Android
共有 人打赏支持
粉丝 12
博文 121
码字总数 39904
×
iBazinga
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: