zoukankan      html  css  js  c++  java
  • Android学习笔记(十八)——使用意图筛选器和实现浏览网页(附源代码)

    使用意图筛选器


    点击下载源代码


    1、创建一个Intents项目,给该项目加入一个新类,命名为MyBrowserActivity。在res/layout目录下新增一个browser.xml;

    2、在AndroidManifest.xml文件里加入例如以下代码:

    加入权限:

        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.INTERNET" />
            <activity
                android:name=".MyBrowserActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    <action android:name="net.zenail.MyBrowser" />
    
                    <category android:name="android.intent.category.DEFAULT" />
    
                    <data android:scheme="http" />
                </intent-filter>
            </activity>

    action:动作。category:类别;data:指明获取的数据类型。

    3、在main.xml文件里加入三个Button:

        <Button
            android:id="@+id/btn_webbrowser"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:onClick="onClickWebBrowser"
            android:text="Web Browser" />
    
        <Button
            android:id="@+id/btn_makecalls"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:onClick="onClickMakeCalls"
            android:text="Make Calls" />
    
     
        <Button
            android:id="@+id/btn_launchMyBrowser"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:onClick="onClickLaunchMyBrowser"
            android:text="Launch My Browser" />

    4、在IntentsActivity.java文件里加入三个Button相应的三个点击方法:

    	public void onClickWebBrowser(View v) {
    		Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
    				Uri.parse("http://网址"));//此处输入百度网址。CSDN不让加链接...
    		//使用createChooser()的优点:
    		//1、将显示的选择对话框的标题改掉。且没有了Use by default for this action选项
    		//2、当没有活动与程序的Intent对象匹配时,应用程序不会崩溃
    		//startActivity(intent.createChooser(intent, "Open URL using..."));
    		startActivity(intent);
    	}
    
    	public void onClickMakeCalls(View v) {
    		Intent intent = new Intent(android.content.Intent.ACTION_DIAL,
    				Uri.parse("tel:+651234567"));
    		startActivity(intent);
    	}
    
    	public void onClickLaunchMyBrowser(View v) {
    		Intent intent = new Intent("net.zenail.MyBrowser");
    		intent.setData(Uri.parse("http://网址"));//此处输入百度网址,CSDN不让加链接...
    		startActivity(intent);
    	}

    5、在browser.xml中加入一个WebView:

        <WebView
            android:id="@+id/WebView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    6、在MyBrowserActivity.java文件里加入例如以下代码,实现浏览网页功能:

    public class MyBrowserActivity extends Activity {
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.browser);
    		Uri url = getIntent().getData();
    		WebView webView = (WebView) findViewById(R.id.WebView01);
    		webView.setWebViewClient(new Callback());
    		webView.loadUrl(url.toString());
    	}
    
    	private class Callback extends WebViewClient {
    		@Override
    		public boolean shouldOverrideUrlLoading(WebView view, String url) {
    			// TODO Auto-generated method stub
    			return false;
    		}
    	}
    }

    7、执行一下,效果例如以下:


    点击第三个button:


    点击第一个button:


    若想完好意图筛选器,则在IntentsActivity.java的onClickWebBrowser()方法中加入createChooser()方法:

    startActivity(intent.createChooser(intent, "Open URL using..."));

    加入后的效果例如以下:


    这时就可以选择你想要选择的应用程序就可以~


    附、使用createChooser()的优点:

    1、将显示的选择对话框的标题改掉,且没有了Use by default for this action选项。

    2、当没有活动与程序的Intent对象匹配时,应用程序不会崩溃。

  • 相关阅读:
    【crontab】误删crontab及其恢复
    New Concept English there (7)
    New Concept English there (6)
    New Concept English there (5)
    New Concept English there (4)
    New Concept English there (3)
    New Concept English there (2)Typing speed exercise
    New Concept English there (1)Typing speed exercise
    New Concept English Two 34 game over
    New Concept English Two 33 94
  • 原文地址:https://www.cnblogs.com/llguanli/p/6845361.html
Copyright © 2011-2022 走看看