webview跳转加载数据
来源:互联网 发布:北京生祥义网络 编辑:程序博客网 时间:2024/06/05 05:31
<----布局----> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent"> </WebView> </LinearLayout> <-----webview的主页面-----> package com.example.a02_httpurlconnnection_newstop_03; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class WebActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web_layout); WebView webView = (WebView) findViewById(R.id.web_view); Intent intent = getIntent(); String url = intent.getStringExtra("url"); //加载 webView.loadUrl(url); //设置 webView.setWebViewClient(new WebViewClient()); WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); } } <---主页面跳转----> package com.example.a02_httpurlconnnection_newstop_03; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.provider.Settings; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import com.example.a02_httpurlconnnection_newstop_03.adapter.MyAdapter; import com.example.a02_httpurlconnnection_newstop_03.bean.DataBean; import com.example.a02_httpurlconnnection_newstop_03.bean.DataResultBean; import com.google.gson.Gson; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView listView; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { //接收数据...设置适配器 if (msg.what == 0){ DataBean dataBean = (DataBean) msg.obj; list = dataBean.getResult().getData(); //设置适配器 MyAdapter myAdapter = new MyAdapter(list, MainActivity.this); listView.setAdapter(myAdapter); } } }; private List<DataResultBean> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.list_view); //条目的点击事件 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { //传值过去...url路径 if (list != null){ Intent intent = new Intent(MainActivity.this,WebActivity.class); intent.putExtra("url",list.get(i).getUrl()); startActivity(intent); } } }); } public void getTop(View view){ //点击获取网络数据之前,判断一下网络是否可用...不可用,设置 if (isNetConnected()){ getNetData(); }else { //对话框 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("警告"); builder.setMessage("网络不可用,是否设置?"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { //Settings.ACTION_WIRELESS_SETTINGS //Settings.ACTION_WIFI_SETTINGS Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS); startActivity(intent); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); builder.show(); } } /** * 判断网络是否可用 * * boolean */ private boolean isNetConnected(){ //1.获取一个连接管理对象 ConnectivityManager manager = (ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE); //2.获取网络连接的信息 NetworkInfo networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null){ //返回值就代表网络是否可用 return networkInfo.isAvailable(); } return false; } /** * 获取头条的数据 */ private void getNetData() { new Thread(){ @Override public void run() { //头条服务器地址 String path = "http://v.juhe.cn/toutiao/index"; try { URL url = new URL(path); //打开连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置 connection.setRequestMethod("POST"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); //post方式要提交参数给服务器...以流的方式提交给服务器 connection.setDoOutput(true); //设置请求参数的类型 connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); String params = "type=top&key=597b4f9dcb50e051fd725a9ec54d6653"; //参数以流的形式写给服务器...字节数组的形式写出去 connection.getOutputStream().write(params.getBytes()); //响应 int responseCode = connection.getResponseCode(); if (responseCode == 200){ //获取输入字节流 InputStream inputStream = connection.getInputStream(); String json = streamToString(inputStream,"utf-8"); Log.i("json",json); //解析...解析完成之后发送到主线程,设置适配器 Gson gson = new Gson(); DataBean dataBean = gson.fromJson(json, DataBean.class); //发送出去 Message message = Message.obtain(); message.what = 0; message.obj = dataBean; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } private String streamToString(InputStream inputStream,String charset) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s = null; StringBuilder builder = new StringBuilder(); while ((s = bufferedReader.readLine()) != null){ builder.append(s); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } } <----清单列表----> <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.a02_httpurlconnnection_newstop_03"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".WebActivity"/> </application> </manifest>
阅读全文
0 0
- webview跳转加载数据
- WebView加载数据不全
- webView加载数据内容
- 关于iOS加载webView通过webView跳转回app
- android中webView 加载数据
- webView加载数据的方法
- ios webview 加载数据方法
- A(里面加载webview) activity 跳转至 A activity,按返回键前一个A activity数据没有了
- WebView 跳转
- 解决WebView加载URL跳转到系统浏览器的问题
- webview设置加载进度条、屏蔽跳转到默认浏览器、对话框
- 加载(WebView)页面,调JS刷新数据
- webview 加载数据时编码问题
- iOS开发 webView加载html数据
- Android使用WebView加载网页及数据
- 安卓webView加载HTML数据
- webview加载不出数据解决方案
- WebView加载服务器返回的html数据
- Foxmail免费下载
- VS关闭突出显示当前行
- 在keil仿真中遇见的一些问题
- 搭建 Linux 下 GitLab 服务器
- sql 循环
- webview跳转加载数据
- linux内核路由模块fib_valid_source函数(反向路由检测)
- js 手动计算fontsize
- 详解Windows7下使用Eclipse搭建hadoop开发环境
- Rxjava2源码分析(三)
- 使用python编写虚拟机解释器
- synchronized同步方法
- vue中传多选项数据到后台(判断数组中是否存在该项,存在则删除,不存在则添加)
- Android下使用CMake链接已有静态库.a生成新的静态库.a,以及动态库.so链接静态库生成新的动态库.so