回调函数

1、IBackPressedListener

1)MainActivity定义接口

public class FileExplorerTabActivity extends Activity {
 
    //...do something...
    public interface IBackPressedListener {
        /**
         * 处理back事件。
         * @return True: 表示已经处理; False: 没有处理,让基类处理。
         */
        boolean onBack();
    }
 
    @Override
    public void onBackPressed() {
        IBackPressedListener backPressedListener = (IBackPressedListener) mTabsAdapter
                .getItem(mViewPager.getCurrentItem());
        if (!backPressedListener.onBack()) {
            super.onBackPressed();
        }
    }
}

2)其他Activity使用接口

public class FileViewActivity extends Fragment implements IBackPressedListener {
 
    //...do something...
    @Override
    public boolean onBack() {
        if (mBackspaceExit || !Util.isSDCardReady() || mFileViewInteractionHub == null) {
            return false;
        }
        return mFileViewInteractionHub.onBackPressed();//返回FileViewInteractionHub类的处理结果
    }
}


3)FileViewInteractionHub.java

public class FileViewInteractionHub {
    //...do something...
    public boolean onBackPressed() {
        if (mDropdownNavigation.getVisibility() == View.VISIBLE) {
            mDropdownNavigation.setVisibility(View.GONE);
        } else if (isInSelection()) {
            clearSelection();
        } else if (!onOperationUpLevel()) {
            return false;
        }
        return true;
    }
}

2、封装工具类,传递回调函数结果

1)UserUtil.java

public interface UpdateFollowCallback {
        public void updateFollow(int resultCode, FollowUpdateResult result);
    }
 
 
    public static void updateFollow(Context context, final String user_Id,
                                    boolean toCancel, final UpdateFollowCallback updateFollowCallback) {
 
        IBeanLoader iBeanLoader = new BeanLoaderImpl(context.getApplicationContext());
        if (toCancel) {
            iBeanLoader.loadHttp(new FollowUpdateBean(user_Id, TO_CANCEL_FOLLOW));
        } else {
            iBeanLoader.loadHttp(new FollowUpdateBean(user_Id, TO_FOLLOW));
        }
        iBeanLoader.setCallback(new IBeanLoader.ILoadCallback<FollowUpdateResult>() {
            @Override
            public void onCacheComplete(FollowUpdateResult result) {
 
            }
 
            @Override
            public void onHttpComplete(int resultCode, FollowUpdateResult result) {
                if (resultCode != IBeanLoader.LOAD_SUCCESS) {
                    return;
                }
                updateFollowCallback.updateFollow(resultCode, result);
            }
 
            @Override
            public void onContentChange() {
 
            }
        });
    }

2)PersonalDetailFragment.java
 

  UserUtil.updateFollow(getContext(), dest_user_id, false, new UserUtil.UpdateFollowCallback() {
                        @Override
                        public void updateFollow(int resultCode, FollowUpdateResult result) {
                            if (!isFinishing()) {
                                if (resultCode != IBeanLoader.LOAD_SUCCESS) {
                                } else {
                                    if (result.code == 0) {
                                        focus_or_not = 1;
                                        getActivity().invalidateOptionsMenu();
                                    }
                                }
                            }
                        }
                    });

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值