大家好,做项目 遇到一个问题:我的应用里有很多个activity,每个activity中右下角是一个功能按钮,这个功能按钮的功能在所有的activity中是一样。请问大家怎么不用在每个activity里都给这个功能按钮设置监听事件而又可以实现它的功能呢?

我尝试过继承什么的,都不可以,不知道有没有什么 方法可以实现呀?谢谢大家了

推荐图书

  • Android 2高级编程(第2版)
  • Google Android SDK开发范例大全(第2版)
  • 疯狂Android讲义


1个回答

声明外部类 :通过重写构造函数,传入相应的activity,和相应的控件,这里有个demo 你可以看看,不够很少这样做的,内部类可以提高程序的内聚性,

 public class SendSmsListener implements OnLongClickListener
{
    private Activity act;
    private EditText address;
    private EditText content;

    public SendSmsListener(Activity act, EditText address, EditText content)
    {
        this.act = act;
        this.address = address;
        this.content = content;
    }

    /*
     * (non-Javadoc)
     * 
     * @see android.view.View.OnLongClickListener#onLongClick(android.view.View)
     */
    @Override
    public boolean onLongClick(View source)
    {
        String addressStr = address.getText().toString();
        String contentStr = content.getText().toString();
        SmsManager smsManager = SmsManager.getDefault();
        PendingIntent sentIntent = PendingIntent.getBroadcast(act, 0,
            new Intent(), 0);
        smsManager.sendTextMessage(addressStr, null, contentStr
            , sentIntent, null);
        Toast.makeText(act, "短信发送完成", Toast.LENGTH_LONG).show();
        return false;
    }
}