2013-06-07 3 views
0

Я работал над webView, если он работал, но флеш-ролики не работали.кнопка для отображения URL не работает больше

После небольшого поиска я нашел код веб-просмотра, который отображает видео. webview video

это мой старый код

private static final String LOG_TAG = "Web"; 

private WebView mWebView; 
public static final String URL = ""; 

@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.web); 

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

    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setSavePassword(false); 
    webSettings.setSaveFormData(false); 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setSupportZoom(false); 



    String turl = getIntent().getStringExtra(URL); 

    mWebView.loadUrl(turl); 
; 

} 

@Override 
public void onBackPressed() { 

    finish(); 
} 

/** 
* Provides a hook for calling "alert" from javascript. Useful for debugging 
* your javascript. 
*/ 
final class MyWebChromeClient extends WebChromeClient { 
    @Override 
    public boolean onJsAlert(WebView view, String url, String message, 
      JsResult result) { 
     Log.d(LOG_TAG, message); 
     result.confirm(); 
     return true; 
    } 
} 

поэтому я заменил его mainactivity от источника и добавил

String turl = getIntent().getStringExtra(URL); 

и

public static final String URL = ""; 

и внесли некоторые изменения, так он загружает имена классов, которые я использую

так что теперь у меня есть это

private WebView webView; 
    public static final String URL = ""; 
    private FrameLayout customViewContainer; 
    private WebChromeClient.CustomViewCallback customViewCallback; 
    private View mCustomView; 
    private myWebChromeClient mWebChromeClient; 
    private myWebViewClient mWebViewClient; 


    /** 
    * Called when the activity is first created. 
    */ 
    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     customViewContainer = (FrameLayout) findViewById(R.id.customViewContainer); 
     webView = (WebView) findViewById(R.id.webView); 

     mWebViewClient = new myWebViewClient(); 
     webView.setWebViewClient(mWebViewClient); 


     mWebChromeClient = new myWebChromeClient(); 
     webView.setWebChromeClient(mWebChromeClient); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setAppCacheEnabled(true); 
     webView.getSettings().setBuiltInZoomControls(true); 
     webView.getSettings().setSaveFormData(true); 
     String turl = getIntent().getStringExtra(URL); 
     webView.loadUrl(turl); 
    } 

    public boolean inCustomView() { 
     return (mCustomView != null); 
    } 

    public void hideCustomView() { 
     mWebChromeClient.onHideCustomView(); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); //To change body of overridden methods use File | Settings | File Templates. 
     webView.onPause(); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); //To change body of overridden methods use File | Settings | File Templates. 
     webView.onResume(); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); //To change body of overridden methods use File | Settings | File Templates. 
     if (inCustomView()) { 
      hideCustomView(); 
     } 
    } 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 

      if (inCustomView()) { 
       hideCustomView(); 
       return true; 
      } 

      if ((mCustomView == null) && webView.canGoBack()) { 
       webView.goBack(); 
       return true; 
      } 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

    class myWebChromeClient extends WebChromeClient { 
     private Bitmap mDefaultVideoPoster; 
     private View mVideoProgressView; 

     @Override 
     public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback) { 
      onShowCustomView(view, callback); //To change body of overridden methods use File | Settings | File Templates. 
     } 

     @Override 
     public void onShowCustomView(View view,CustomViewCallback callback) { 

      // if a view already exists then immediately terminate the new one 
      if (mCustomView != null) { 
       callback.onCustomViewHidden(); 
       return; 
      } 
      mCustomView = view; 
      webView.setVisibility(View.GONE); 
      customViewContainer.setVisibility(View.VISIBLE); 
      customViewContainer.addView(view); 
      customViewCallback = callback; 
     } 

     @Override 
     public View getVideoLoadingProgressView() { 

      if (mVideoProgressView == null) { 
       LayoutInflater inflater = LayoutInflater.from(Web.this); 
       mVideoProgressView = inflater.inflate(R.layout.video_progress, null); 
      } 
      return mVideoProgressView; 
     } 

     @Override 
     public void onHideCustomView() { 
      super.onHideCustomView(); //To change body of overridden methods use File | Settings | File Templates. 
      if (mCustomView == null) 
       return; 

      webView.setVisibility(View.VISIBLE); 
      customViewContainer.setVisibility(View.GONE); 

      // Hide the custom view. 
      mCustomView.setVisibility(View.GONE); 

      // Remove the custom view from its container. 
      customViewContainer.removeView(mCustomView); 
      customViewCallback.onCustomViewHidden(); 

      mCustomView = null; 
     } 
    } 

    class myWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return super.shouldOverrideUrlLoading(view, url); //To change body of overridden methods use File | Settings | File Templates. 
     } 
    } 

я использую этот код для моей кнопки, чтобы открыть URL в WebView

public void onClick(View v) { 
    switch (v.getId()) { 
    case R.id.button1: 
     Intent k = new Intent(this, Web.class); 
     k.putExtra(com.papers.test.Web.URL, 
       "http://www.telegraaf.mobi"); 
     startActivity(k); 
     break; 


    } 

} 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.onlinekranten); 
    View secondButton = findViewById(R.id.button1); 
    secondButton.setOnClickListener(this); 

} 

в моем старом web.class это работало просто отлично, но теперь когда я нажимаю кнопку, я получаю fc, может ли кто-нибудь помочь мне с этой проблемой?

LogCat

06-07 12:38:55.310: E/AndroidRuntime(3236): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.papers.test/com.papers.test.Web}: java.lang.NullPointerException 
+0

принудительно закрывается, когда я нажимаю кнопку –

+0

Я редактировал свой комментарий и удалял его случайно. ОК. позвольте мне проверить сообщение в деталях. разместите здесь logcat. – SKK

+0

мой logcat говорит об этом 06-07 12: 38: 55.310: E/AndroidRuntime (3236): java.lang.RuntimeException: Не удалось запустить Activity ComponentInfo {com.papers.test/com.papers.test.Web}: java. lang.NullPointerException –

ответ

-1

Его выглядит как должно быть объявлено мне нравится делать это выше OnCreate, чтобы использовать любой ваша кнопка, где

Кнопка secondButton;

+0

все уже найдено исправление забыл отредактировать одну часть –

Смежные вопросы