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();
}
}