以下内容部分摘自Android控件之Button。
方式一:匿名实现View.OnClickListener接口
public class ButtonTest extends Activity implements View.OnClickListener
{
...
public void clickReset(View v)
{
// 按键处理
}
...
}
优点:直观。可以清晰的看到每个Button的点击处理事件。
缺点:当按钮众多的时候,若为每个按钮单独的去采用匿名类的方式实现View.OnClickListener接口,会显得代码很冗余。
public class ButtonTest extends Activity
{
...
private Button mButton;
...
@Override
protected void onCreate(Bundle savedInstanceState)
{
...
// 按钮实现方式
mButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// 按键处理
}
});
...
}
}
方式二:Activity实现View.OnClickListener接口
Activity通过覆盖onClick()函数来实现View.OnClickListener接口,之后Button的点击事件全部可以在该Activity的onClick()函数中处理。
优点:统一处理所有Button的点击事件。当Button比较多的时候尤其管用。
public class ButtonTest extends Activity implements View.OnClickListener
{
...
private Button mButton;
...
@Override
protected void onCreate(Bundle savedInstanceState)
{
...
// 按钮实现方式
mButton.setOnClickListener(this);
...
}
@Override
public void onClick(View v)
{
// 按键处理
}
}
方式三:在layout中定义,然后直接在Activity中实现
在layout中指定Button的控制函数,然后直接在Button所在的Activity中实现该函数接口。
首先,在layout中定义Button的android:onClick属性
<Button
...
android:onClick="clickReset"
...
/>
上面的定义,指定了该Button的控制函数为clickReset,接着在Activity中实现clickReset
public class ButtonTest extends Activity implements View.OnClickListener
{
...
public void clickReset(View v)
{
// 按键处理
}
...
}