android webview共享网址只适用于notitlebar主题

时间:2014-05-21 05:02:30

标签: android webview

我使用webview创建一个Android应用程序。有用。然后我添加一个共享意图来共享webview的当前URL。这仅在共享图标不在标题栏中时有效,通过单击android菜单按钮来显示图标。但是当共享图标出现在标题栏中时,它不起作用。

我的网络活动代码是

package com.android.androidwebviewexample;

import com.android.androidwebviewexample.R;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ShareActionProvider;

public class WebActivity extends Activity {

private WebView webView;

@SuppressLint("SetJavaScriptEnabled")
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.webcontent);

    webView = (WebView) findViewById(R.id.webView);

    webView.getSettings().setJavaScriptEnabled(true);

    webView.loadUrl(myurlname);


    webView.setWebViewClient(new WebViewClient(){
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            String url2=myurlname;

            if (url != null && url.startsWith(url2)){
                return false;
                } 
            else  {
                view.getContext().startActivity(
                new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                return true;
                }
        }
    });


}
private ShareActionProvider myShareActionProvider;
@Override
 public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.main, menu);
         MenuItem item = menu.findItem(R.id.menu_item_share);
         myShareActionProvider = (ShareActionProvider)item.getActionProvider();
         myShareActionProvider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);

         myShareActionProvider.setShareIntent(createShareIntent());
         return true;
     }


     private Intent createShareIntent() {
      Intent shareIntent = new Intent(Intent.ACTION_SEND);
            shareIntent.setType("text/plain");
            shareIntent.putExtra(Intent.EXTRA_TEXT, webView.getUrl());
            return shareIntent;
        }

     @Override
     public final boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.menu_item_share:
                 shareURL();
         }
         return super.onOptionsItemSelected(item);
     }

         private void shareURL() {
            Intent shareIntent = new Intent(Intent.ACTION_SEND);
            shareIntent.setType("text/plain");
            shareIntent.putExtra(Intent.EXTRA_TEXT, webView.getUrl());
            startActivity(Intent.createChooser(shareIntent, "Share This!"));
        }

}

工作的Android清单的一部分是

<activity
        android:name=".WebActivity"
        android:theme="@android:style/Theme.NoTitleBar" />

无效的android清单的一部分是

<activity
        android:name=".WebActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>
    </activity>

如何解决。

0 个答案:

没有答案