2011-06-08 85 views
0

我正在嘗試創建自己的瀏覽器,以便它將使用Web視圖來顯示我選擇的頁面。我的問題是,雖然我可以讓Web View作爲一個單獨的應用程序工作(通過遵循教程http://developer.android.com/resources/tutorials/views/hello-webview.html),但我無法在我的應用程序中顯示它。Android應用程序中的嵌入式Web視圖

我認爲只是創建一個WebViewer(我的Web視圖的實現)將運行該程序。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main);  

    WebViewer wv = new WebViewer(); 
} 

(WebViewer設置爲自動顯示谷歌),但我運行該程序時得到的只是一個白色框。 main.xml文件具有WebViewer對象,並且在清單中建立Internet權限。

當沒有工作時,我試着直接實現Android的Web查看器。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main);  

    WebView wv = new WebView(this); 
    setContentView(wv); 
    wv.loadUrl("http://stackoverflow.org/"); 
} 

只要我嘗試運行它,就會崩潰程序。

我知道我很新,也許我只是想念一些小事,但是我做錯了什麼?

+0

你能告訴我們你的logcat裏面有什麼嗎?也許你需要把互聯網許可? – Tsunaze 2011-06-08 21:23:16

回答

0

回到第一次嘗試,main.xml中有什麼?大多數時候,你應該在你的XML中擁有你的Views(就像你鏈接的例子),你應該用findViewById()來實例化你的視圖(在這個例子中)。由於WebView沒有任何佈局參數,第二次嘗試可能會崩潰,但我不能100%確定。爲什麼不建立更多的例子?

+0

當我開始使用Web視圖時,我直接脫離了該示例,並使用Web View由自己的查看器創建。當我試圖把它放在別的東西上時,我只是假設我應該把我創建的實現Web視圖的類放到另一個類中。我想在這個過程中的某個地方,將android自己的web視圖放到新程序中會更簡單,但我顯然試圖讓它變得複雜。 – Lark 2011-06-09 00:56:14

+0

我的main.xml基本上是一個外部的線性佈局,包含3個內部線性佈局(帶有按鈕/文本框)和webviewer。 (我會在這裏發佈代碼,但我不認爲它會給我那麼多的話......) – Lark 2011-06-09 01:02:36

0

它看起來像你需要在你的onCreate中找到WebView並對其執行loadUrl。您也一次又一次地設置了內容視圖。除非你正在做一些非常瘋狂的事情,否則你只需要一次。試試這個:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main);  

    WebView wv = findViewById(R.id.my_wv_id); 
    wv.loadUrl("http://stackoverflow.org/"); 
} 

Twitter的Android SDK中實際上有關於如何做到這一個非常好的例子:https://github.com/sugree/twitter-android-sdk/blob/master/twitter/src/com/sugree/twitter/TwDialog.java

+0

我試過這個代碼,元素的名稱代替了my_wv_id。沒有骰子。仍然崩潰,並讓我強行退出。這個例子看起來非常有用。我會盡力從中拉出來! – Lark 2011-06-09 01:13:42

+0

也許你忘了添加INTERNET權限? – xtr 2011-06-09 03:56:28

+0

不是。它在清單文件中。 – Lark 2011-06-09 13:36:13

相關問題