Fragment中onActivityResult不响应
来源:互联网 发布:加拿大游戏公司 知乎 编辑:程序博客网 时间:2024/05/16 15:12
/////////////////2016/10/17//////////////////
////////////////by xbw///////////////////////
////////////////android studio/////////////
最近做的项目,需要android+h5,在fragment中内嵌h5,这个确实便利不少。
用户体验很棒。
但是问题来了,其中有个模块是修改密码的,修改之后我们需要一层一层
finish,然后跳转到login界面,重新登录。。。。
一开始想的是利用信鸽推送的消息透传进行h5与android交互。但是信鸽服务器延迟有点高,
没办法及时跳转,方案被pass了。。。。
最后还是在webview中做手脚了。。。。
webChromeClient = new VideoEnabledWebChromeClient(nonVideoLayout, videoLayout, loadingView, webView) // See all available constructors... { // Subscribe to standard events, such as onProgressChanged()... @Override public void onProgressChanged(WebView view, int newProgress) { // Your code... pb.setProgress(newProgress); if (newProgress == 100) { //加载完成刷新图标消失 swipeLayout.setRefreshing(false); pb.setVisibility(View.GONE); if(webView.getUrl().equals("http://8888/mvp/user/login.php")){ Intent mIntent = new Intent(); mIntent.putExtra("close", "Y"); setResult(1000, mIntent); SharedPreference sharedPreference=new SharedPreference(WebActivity.this); sharedPreference.DisconnectLogin(); finish(); } } super.onProgressChanged(view, newProgress); } };h5会在修改完密码后跳转到一个login界面,我们正好利用webview获取当前url来进行判断。
在fragment中的设置
case R.id.button_imgd:mIntent.setClass(getActivity(), WebActivity.class);mIntent.putExtra("title_name",getString(R.string.menu_button_4));mIntent.putExtra("url", getString(R.string.menu_button_url_4)+readUserId());//不要getActivity().startActivityForResult(mIntent, 1000);break;
已经做了标注,注释就是重点。。。。
千万不要写成getActivity().startActivityForResult(mIntent,1000);
这样是无效的。。。。。
@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if(data==null)return ;if (requestCode == 1000) {String result_value = data.getStringExtra("close");if(result_value.equals("Y")){startActivity(new Intent(getActivity(), LoginActivity.class));getActivity().finish();}}}
原因查找资料很详细,照抄一些过来
……并没有好的解释,希望大家补充,谢谢大家
h5逻辑
<script> $(document).ready(function(){ var uid=$("#uid").val(); $("#ss-pwd-update").click(function(){ $.ajax({ type:"POST", url:"_sspwd_update_m.php", dataType:"json", data:{ sspwd: $("#sspwd").val(), uid: $("#uid").val() }, success:function(data){ if(data.ok){ $("#ss-msg-success").show(); $("#ss-msg-success-p").html(data.msg); window.setTimeout("location.href='login.php'", 1000); }else{ $("#ss-msg-error").show(); $("#ss-msg-error-p").html(data.msg); } }, error:function(jqXHR){ alert("发生错误:"+jqXHR.status); // 在控制台输出错误信息 console.log(removeHTMLTag(jqXHR.responseText)); } }) }) })</script>
0 0
- Fragment中onActivityResult不响应
- Fragment中onActivityResult不响应
- Fragment中onActivityResult不响应
- Fragment中onActivityResult不响应
- Fragment中onActivityResult不响应
- Fragment中onActivityResult不响应
- Fragment中 onActivityResult不响应
- Fragment中onActivityResult不响应
- Fragment中onActivityResult不响应
- fragment不响应onActivityResult
- Fragment 不响应onActivityResult
- Fragment 不响应onActivityResult
- Fragment中onActivityResult不响应的解决办法
- Fragment中响应onActivityResult
- Fragment不响应onActivityResult回调
- Fragment不响应onActivityResult回调
- 开发中遇到Fragment中onActivityResult不响应的问题,
- Fragment中onActivityResult方法不响应的解决
- 数据结构(九)
- android studio添加代码(类)注释功能
- Unity 音乐可视化(音乐频谱控制物体的运动)
- linux普通用户使用1024以下的端口(80)
- Java基础2——语法
- Fragment中onActivityResult不响应
- 一个简单的复制过来的字符串到数字的转换
- C++入门:定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。
- httpClient 发送压缩文件
- OPENCV学习遇到的问题汇总记录
- C# WinForm获取 当前执行程序路径的几种方法
- ViewPager之引导界面---实现欢迎引导页面
- 论文 I can see what you see
- DBhelper