2011-10-18 40 views
1

好的,我試圖創建一個小應用程序,在3個不同的選項卡中打開3個不同的webviews。目前我有我的tabhost創建好和我的webview單獨的類,但是當我打開應用程序它不顯示。試圖在TabHost中打開WebView

Tabhost代碼

public class HelloTabWidgetActivity extends TabActivity { 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Resources res = getResources(); // Resource object to get Drawables 
    TabHost tabHost = getTabHost(); // The activity TabHost 
    TabHost.TabSpec spec; // Resusable TabSpec for each tab 
    Intent intent; // Reusable Intent for each tab 

    // Create an Intent to launch an Activity for the tab (to be reused) 
    intent = new Intent().setClass(this, HelloWebViewActivity.class); 

    // Initialize a TabSpec for each tab and add it to the TabHost 
    spec = tabHost.newTabSpec("albums").setIndicator("News", 
      res.getDrawable(R.drawable.ic_tab_albums)) 
     .setContent(intent); 
    tabHost.addTab(spec); 

    // Do the same for the other tabs 
    intent = new Intent().setClass(this, SongsActivity.class); 
    spec = tabHost.newTabSpec("songs").setIndicator("SaintsTV", 
         res.getDrawable(R.drawable.ic_tab_songs)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    intent = new Intent().setClass(this, ArtistsActivity.class); 
    spec = tabHost.newTabSpec("artists").setIndicator("Fixtures", 
         res.getDrawable(R.drawable.ic_tab_artists)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    tabHost.setCurrentTab(0); 
} 

}

的WebView代碼

public class HelloWebViewActivity extends Activity { 
    WebView mWebView; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mWebView = (WebView) findViewById(R.id.webview); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.loadUrl("http://www.google.com"); 
     mWebView.setWebViewClient(new HelloWebViewClient()); 
    } 
} 

我不能看到一個問題,我已經閱讀了有關TabHostContentFactory其他民族的職位,但我不知道如何讓它在應用程序打開時加載webview。任何幫助都會得到很大的迴應。

上面的代碼是基於HelloWebView教程和HelloTabWidget教程

回答

0

我想這是在主要佈局本身的問題,因爲我運行代碼精室內用的唯一修改:

public class HelloWebViewActivity extends Activity { 
    WebView mWebView; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     mWebView = new WebView(this); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.loadUrl("http://www.google.com"); 
     mWebView.setWebViewClient(new HelloWebViewClient()); 

     setContentView(mWebView); 
    } 
} 

這是讓你開始,

我建議使用tabhost佈局文件僅用於選項卡和webview控制器(和其他意圖佈局)應該在其他佈局文件。爲此,您可以使用教程:HTTP://joshclemm.com/blog/ P = 136

我希望這有助於

+0

你好,謝謝你,我有點新的android開發和java任何機會,你可以擴大你的答案多一點,因爲我不確定把代碼放在哪裏。 –

+0

我在答案中詳細說明了一下,我希望它有幫助。該教程是非常好的,你可以找到一切你需要有一個很酷的tabhost;) – petrumo

+0

真棒歡呼所有作品:) –

2

我曾經嘗試過同樣的事情,有時回來,後來想通了,我沒有爲應用程序聲明合適的Internet訪問權限。這就是原因,tabhost中的webview變得空白,Logcat也沒有錯誤。

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

將以上幾行添加到AndroidManifest.xml中解決了我的問題。

+0

是的,ACCESS_NETWORK_STATE沒有它對我來說。 –