一、使用实现(implements )监听OnClickListener方式,重写onClick()方法,实现监听(activity,fragment中皆可使用)
public class MainActivity extends Activity implements OnClickListener{ // 1.实现OnClickListenerprivate Button but_01 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//方法一
//找到需要设置监听button的id
but_01 = (Button) findViewById(R.id.main_test01_but); // 2.找到需要设置监听控件的id
//通过类实现OnClickListener()方法来给button设置监听
but_01.setOnClickListener(this); // 3.启动监听
}
@Override
public void onClick(View v) {
v.setBackgroundColor(Color.DKGRAY); //4.重写onClick()方法,设置点击后的效果为灰色
}
二、通过在Button控件中设置onClick属性,达到监听的目的(只限于在Activity中使用,fragment中不能使用,点击没反应,可能是button控件的bug)
<Button
android:id="@+id/main_test02_but"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/but_test02"
android:background="#eeaacc"
android:layout_marginTop="20dp"
android:onClick="click" / /1.在layout中给Button控件设置onClick属性
/>
public void click(View v){ //2、重写其“命名”的方法
v.setBackgroundColor(Color.GREEN);
}
三、使用匿名内部类来为Button控件直接设置监听,在类中调用(fragment,activity中皆可使用)
//给but_03设置监听
public void butClick03(){ //1、自定义一个方法
but_03 = (Button) findViewById(R.id.main_test03_but); //2、找到id
but_03.setOnClickListener(new OnClickListener(){ //3、设置监听
@Override
public void onClick(View v) {
but_03.setBackgroundColor(Color.RED);
}});
}
//此处省略主方法
//启动but_03的方法
butClick03(); //4、在主方法中启动
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~界面效果~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//点击前的界面效果 //main_test01_but 点击效果 //main_test02_but 点击效果 //main_test03_but 点击效果