2014-01-24 29 views
0

我遇到了我的代碼問題,我不確定我寫程序的方式是寫它的最好方法。在onCreate之外調用setContentView(R.layout.nameOfLayout)

要切入正題..

在我的應用程序的onCreate方法,setContentView(R.layout.activity_main); 被調用。

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
//extra code.. 
//there is a lot of code from here on out, but it is not relevant to my question. 
} 

一個WebView顯示4個圖像加載到web視圖上。用戶可以點擊其中一個圖像,它將使用戶訪問4個不同網站中的1個,每個圖像對應不同的網址。

在此應用中,我重寫public void onBackPressed()

現在這裏是問題。

當用戶瀏覽網頁並且有一個「歷史記錄」(所有這些都在web視圖中處理)時,這意味着用戶可以點擊返回,它會一直返回到頁面的開頭,用戶在點擊其中一個圖像時開始。但是它不會回到程序最初開始的位置。這意味着當用戶在我的webview中瀏覽一個頁面並且他們點擊後退按鈕時,它最遠可以追溯到網頁的開始。

我想要回到的是應用程序的開始,其中4個圖像出現在屏幕上,用戶可以點擊不同的圖像(即選擇不同的網頁)。

我試過了 爲了解決這個問題,我想我會嘗試創建一個條件。如果網頁不能再返回,則方法將再次調用setContentView(R.layout.activity_main)

這樣做工作..只有一個大問題。當佈局加載時,所有4個圖像都不會響應任何點擊,並且即使按下後退按鈕,應用程序也不會退出。

不引發異常,不會發生崩潰。

什麼將是一個很好的解決我的問題?

如果需要,我可以發佈代碼。

+0

圖像將收到單擊如果妳不是的onCreate XML定義的onClick,我沒有帶clearely了烏拉圭回合的概率,但我必須說,這是不是一個好的溶膠 – Manmohan

+0

的http://計算器。com/questions/6077141/android-webview-how-to-code-back-button – qwr

+0

您是否嘗試過使用webview.loadUrl(),或者您有特殊理由不這樣做? –

回答

1
((WebView)findViewById(R.id.yourwebviewId)).loadUrl(Url); 
//or 
((WebView)findViewById(R.id.yourwebviewId)).loadData(yourhtmlstring, "text/html", "UTF-8"); 

//or safer 
WebView web=(WebView)findViewById(R.id.yourwebviewId); 
if(web!=null) web.LoadUrl(..) 

更多的WebView方法只是檢查android documentation

假設你只想創建webviewapp。這裏是很好的教程 WebView-based Applications

0

問題是,您正在將主要活動的佈局加載到webview中。

你想要做的是回到主要活動。

只需調用finish()而不是setContentView()就可以了。

+0

我調用了'finish()',它會退出應用程序。 我想回到應用程序的開頭,而不是退出。 –

相關問題