Android學習筆記——Button(按鈕)響應事件的四種方式

實現事件監聽器有幾種形式:
1、內部類形式;
2、匿名內部類形式;
3、Activity實現監聽器接口,自身作爲事件監聽器類;
4、在xml文件中給Button添加onClick屬性。
(Android開發中常用匿名內部類作爲監聽器)

四種方法中,最常用的是第二種和第四種,即匿名內部類的方式和設置onClick屬性。

1、內部類形式:

package com.android.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Button mButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 獲取按鈕
        mButton = (Button) this.findViewById(R.id.button);
        // 設置監聽
        mButton.setOnClickListener(new MyListener());
    }
    
    /*
     * 內部類
     * @author 
     *
     */
    class MyListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// 彈出Toast
			Toast.makeText(MainActivity.this, "點我幹嘛?", Toast.LENGTH_SHORT).show();
		}
    }

}


2、匿名內部類形式:

package com.android.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Button mButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 獲取按鈕
        mButton = (Button) this.findViewById(R.id.button);
        // 匿名內部類形式設置監聽
        mButton.setOnClickListener(new OnClickListener() {
			
	    @Override
	    public void onClick(View v) {
	<span style="white-space:pre">	</span>// 彈出Toast
	<span style="white-space:pre">	</span>Toast.makeText(MainActivity.this, "點我幹嘛?", Toast.LENGTH_SHORT).show();
	    }
<span style="white-space:pre">	</span>});
    }
}


3、Activity實現監聽器接口,自身作爲事件監聽器類:

package com.android.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{
	private Button mButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 獲取按鈕
        mButton = (Button) this.findViewById(R.id.button);
        // 設置監聽
        mButton.setOnClickListener(this);
    }
    
    @Override
    public void onClick(View v) {
        // 彈出Toast
<span style="white-space:pre">	</span>Toast.makeText(MainActivity.this, "點我幹嘛?", Toast.LENGTH_SHORT).show();
    }
}


4、在xml文件中給Button添加onClick屬性:android:onClick="click",再在MainActivity中寫一個click方法:

【注意】:1.MainActivity中的方法名必須和onClick屬性中設置的名稱一致;

   2.方法爲public

   3.方法返回值必須爲void;

   4.參數爲View;

package com.android.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void click(View view) {
	// 彈出Toast
	Toast.makeText(MainActivity.this, "點我幹嘛?", Toast.LENGTH_SHORT).show();
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章