«

Android监听的四种方式

时间:2024-3-2 17:47     作者:韩俊     分类: Android


第一种方式:匿名内部类作为事件监听类

在Activity组件的Oncreata事件中直接定义,直接动作,这种方式使得每个控件都定义一次。大部分事件监听器只是临时使用一次,所以使用匿名内部类形式的事件监听器更合适,实际上,这种形式是目前是最广泛的事件监听器形式。

Buttonbtn1=(Button)findViewById(R.id.myButton);

btn1.setOnclickListener(newOnclickListener(){

public void onClick(View v){

// 要执行的操作

}

})

Buttonbtn2=(Button)findViewById(R.id.myButton2);

btn2.setOnclickListener(newOnclickListener(){

public void onClick(View v){

// 要执行的操作

}

})

第二种通常是在Activity组件实现其接口,这样可以多个外接控件共享一个接口,相对方便

public classTestMedia extends Activity implements OnClickListner{

Buttonbtn1=(Button)findViewById(R.id.myButton1);

Buttonbtn2=(Button)findViewById(R.id.myButton2);

btn1.setOnclickListener(this);

btn2.setOnclickListener(this);

}

public voidonClick(View v){

switch (v.getId()){

case R.id.myButton1;

//要执行的动作1

break;

case R.id.myButton2;

//要执行的动作2

break;

}

}

第三种类似于第二种,好处是如果需要,可以实现多个监听接口,这样更加方便

public classTestMedia extends Activity{

Buttonbtn1=(Button)findViewById(R.id.myButton1);

Buttonbtn2=(Button)findViewById(R.id.myButton2);

btn1.setOnclickListener(newStartclick());

btn2.setOnclickListener(newStopclick());

}

class StartClickimplements OnClickListener{

public void onClick(View v){//或直接跟上要执行的动作

switch(v.getId()){

case R.id.myButton1:

//要执行的动作

}

}

}

class StopClickimplements OnClickListener{////或直接跟上要执行的动作

public void onClick(View v){

switch(v.getId()){

case R.id.myButton2:

//要执行的动作

}

}

}

第四种:直接绑定到标签

直接在界面布局文件中为指定标签绑定事件处理方法,对于很多Android标签而言,它们都支持如onClick、onLongClick等属性。在布局文件中为button添加属性,代码如下:

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:text=”button”

android:id=”@+id/button”

android:onClick=”clickHandler”

为Button按钮绑定一个事件处理方法:clickHanlder,这意味着开发者需要在该界面布局对应的Activity中定义一个void clickHanler(View source)方法,该方法将会负责处理该按钮上的单击事件。代码如下:

public classButtonTest extends Activity{

protected void onCreate(BundlesavedInstanceState){

super.onCreat(savedInstanceState);

this.setContentView(R.layout.main);

}

public void clickHandler(View v){

System.out.println(“直接绑定在标签上的按钮”);

}

}

标签: android

热门推荐