我的学习之旅:初涉android:WebView 与 Intent

发布时间:2016-12-9 17:52:34 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"我的学习之旅:初涉android:WebView 与 Intent",主要涉及到我的学习之旅:初涉android:WebView 与 Intent方面的内容,对于我的学习之旅:初涉android:WebView 与 Intent感兴趣的同学可以参考一下。

写这篇博客的目的是为了总结自己每天学到的东西,内容可能是比较简单,没有很深入的研究。 不过大概的使用还是可以的。 首先看一下布局文件,在这里我定义了两个布局文件来实现Intent的跳转, 一个是主布局文件,代码如下: activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/myEditText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/input" android:singleLine="true"/> <Button android:id="@+id/myButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/myEditText" android:layout_alignLeft="@+id/myEditText" android:text="@string/turnto"/> </RelativeLayout> 在这里我写一个EditText的目的是为了可以自己输入网址,点击按钮实现跳转。 下一个布局文件只有一个WebView,用来装载网页: webview.xml <?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" android:orientation="vertical" > <WebView android:id="@+id/myWebView" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </LinearLayout> 接着就到了写Activity了 MainActivity.java package com.example.mywebview; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private EditText myEditText = null; private Button myButton = null; public String uri = new String(); @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myEditText = (EditText) findViewById(R.id.myEditText); myButton = (Button) findViewById(R.id.myButton); ButtonListener listener = new ButtonListener(); myButton.setOnClickListener(listener); } // 实现页面跳转,并把EditText中的内容用intent传送到MyWebView这个Activity中 class ButtonListener implements View.OnClickListener { @Override public void onClick(final View v) { uri = myEditText.getText().toString(); Intent intent = new Intent(); intent.setClass(MainActivity.this, MyWebView.class); // 把需要传递的数据附加到intent中 intent.putExtra("Uri", "" + uri); startActivity(intent); } } @Override public boolean onCreateOptionsMenu(final Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } MyWebView.java package com.example.mywebview; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import android.webkit.WebView; import android.webkit.WebViewClient; public class MyWebView extends Activity { private WebView myWebView = null; private String uri = new String("123"); @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); Intent intent = getIntent(); // 获取intent传送过来的变量 uri = intent.getStringExtra("Uri"); System.out.println("-------------->" + uri); myWebView = (WebView) findViewById(R.id.myWebView); // 设置能执行JavaScript脚本 myWebView.getSettings().setJavaScriptEnabled(true); // 直接把uri路径所指的网页装载进来 myWebView.loadUrl(uri); // 设置web视图,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转 myWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(final WebView view, final String url) { view.loadUrl(url); return true; } }); } @Override // 设置返回上一页 public boolean onKeyDown(final int keyCode, final KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && myWebView.canGoBack()) { myWebView.goBack(); return true; } return false; } } 还差最后一步了,使用WebView必然要用到网络,所以要设置网络的访问权限,具体是要在AndroidManifest.xml中设置的。 <uses-permission android:name="android.permission.INTERNET"/> 这个例子很简单,就不做解释了,代码上的注释也很清楚了。 好,这样就完成了.....

上一篇:js跨域方法
下一篇:[置顶] 程序员之路

相关文章

相关评论