if (Build.VERSION.SDK_INT < 24) {
popMenu.showAsDropDown(search_view, 0, 2);
} else {
// 适配 android 7.0
int[] location = new int[2];
search_view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
popMenu.showAtLocation(search_view, Gravity.NO_GRAVITY, 0, y +search_view.getHeight() + 5);
popMenu.setAnimationStyle(-1);
}
在开发中,我们利用intent进行activity间传值通信。比如:
activity A调用startActivityForResult()函数启动Activity B,然后B结束时通过setResult()函数将一些值回传给A。
有时候,我们从B跳回A后,并没有返回数据。而是在A跳转到B后立马执行了sonActivityResult()。
原因其实很简单,因为我们设置了A、B的启动模式都是sing_instance。只需要把B的启动模式改为标准模式就行了。因为AB在俩个不同的栈中,在Android中不同的栈之间不能进行数据通信。