2013-10-22 73 views
0

Goooood傍晚時分。我有一個webview加載特定的網頁。用戶然後可以選擇菜單,然後導航到其他兩個指定頁面。問題是,後兩頁將無法加載。我無法理解爲什麼,並希望得到一些幫助。謝謝。瀏覽WebView中的多個頁面上的菜單選擇

public class News extends Activity{ 
WebView mgebview; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.news); 
mgebview = (WebView) findViewById(R.id.webview); 
    mgebview.getSettings().setJavaScriptEnabled(true); 
    mgebview.loadUrl("http://goo.gl/rQp3tF"); 

    mgebview.setWebViewClient(new WebViewClient()); 


} @Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    super.onCreateOptionsMenu(menu); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.newschoices, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch(item.getItemId()){ 
    case R.id.bookmark: 
     Intent addContact = new Intent(this, BookGoogle.class); 
      startActivity(addContact); 
      break; 
    case R.id.dlrnews: 
     //Intent dlr = new Intent (this, DlrNews.class); 
     //startActivity(dlr); 
     mgebview = (WebView) findViewById(R.id.webview); 
     mgebview.getSettings().setJavaScriptEnabled(true); 
     mgebview.loadUrl("www.racingblog.com"); 
     mgebview.setWebViewClient(new WebViewClient()); 
     break; 
    case R.id.gtplanetnews: 
     mgebview = (WebView) findViewById(R.id.webview); 
     mgebview.getSettings().setJavaScriptEnabled(true); 
     mgebview.loadUrl("www.gtplanet.new"); 
     mgebview.setWebViewClient(new WebViewClient()); 
     break; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

回答

2

它不工作的原因是因爲你沒有返回一個布爾值!嘗試使用此代碼:

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch(item.getItemId()){ 
    case R.id.bookmark: 
     Intent addContact = new Intent(this, BookGoogle.class); 
      startActivity(addContact); 
      return true; 
      break; 
    case R.id.dlrnews: 
     mgebview.loadUrl("www.racingblog.com"); 
     return true; 
     break; 
    case R.id.gtplanetnews: 
     mgebview.loadUrl("www.gtplanet.new");z 
     return true; 
     break; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

返回true可以讓我們在這裏「消費」它。

作爲參考:http://developer.android.com/reference/android/app/Activity.html#onOptionsItemSelected%28android.view.MenuItem%29

樣品活動我剛創建,它的工作原理使用Nexus 7:

包com.example.test;

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class MainActivity extends Activity { 
    private WebView myWebView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     myWebView = (WebView) findViewById(R.id.webView1); 
     myWebView.setWebViewClient(new WebViewClient()); 
     myWebView.getSettings().setJavaScriptEnabled(true); 
     myWebView.loadUrl("https://www.google.com/"); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch(item.getItemId()){ 
     case R.id.action_settings: 
      myWebView.loadUrl("http://stackoverflow.com/questions/19508436/browse-multiple-pages-in-webview-on-menu-selection/19508494#19508494"); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 

    } 
} 

清單確保你補充:<uses-permission android:name="android.permission.INTERNET"></uses-permission>

R.layout.activity_main:

<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" > 

    <WebView 
     android:id="@+id/webView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" /> 

</RelativeLayout> 
+0

感謝您的快速反應!我複製了你的代碼,刪除了「Break」因爲返回後沒有必要,我得到了相同的結果......就好像沒有連接 – TheRedStig

+0

您是否在使用仿真器作爲實際設備? – horvste

+0

Nexus 4.在WebView中,它顯示與我處於飛行模式時相同的屏幕。請記住,它會正確顯示開始頁面,原始加載的頁面。 – TheRedStig

相關問題