Android攻城獅—監聽(按鈕)點擊事件

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("個人按鈕被點擊了");
    			}
    		});
    		
    	}
    }

    運行結果>>監聽到點擊事件後執行類中的方法(即控制檯輸出「個人按鈕被點擊了」)。java

  • 獨立類的實現
  • /*
     *第二種方式:獨立類
     */
    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);
    	}
    }
    //[實際應用]:需求讓多個按鈕實現同一種動做的時候,可用此方法,簡化代碼。

    運行結果>>監聽到按鈕點擊事件後實現獨立類中的方法(即點擊按鈕,透明度發生改變)。ide

  • 實現接口的方式來實現
  • /*
     * 第三種方式:接口
     */
    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用來打印日誌
    	}	
    }

    運行結果>>監聽到按鈕點擊事件後實現方法(即打印日誌)。this

相關文章
相關標籤/搜索