2012-02-06 137 views
0

*已解決 我只是不得不公開聲明我的webview變量,以便我的後退按鈕類正常工作。感謝您的幫助在webview上的Android後退按鈕殺死應用程序

我有一個獨特的設置與webview類和我google了一切我沒有得到任何地方。

我使用的按鈕來啓動webview的,我得到的問題是,當我按下後退按鈕返回到我的主應用程序屏幕,它只會殺死應用程序。我在底部添加了一些代碼來嘗試解決我的問題,但它沒有奏效。

btw下面的代碼已更新爲目前正在爲我工​​作。

package my.android.test; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebView; 
import android.widget.Toast; 

public class MobileAppActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

} 
WebView wb; 
public void onMyButtonClick01(View view) 
    { 
     Toast.makeText(this, "Pay your dues here!", Toast.LENGTH_SHORT).show(); 
     wb = new WebView(this); 
     wb.loadUrl("http://www.link1.html"); 
     setContentView(wb);   
    }  
public void onMyButtonClick02(View view) 
{ 
    Toast.makeText(this, "Re-Sign here!", Toast.LENGTH_SHORT).show(); 
    wb = new WebView(this); 
    wb.loadUrl("http://www.link2.html"); 
    setContentView(wb); 

} 
public void onBackPressed() { 
    if(wb != null) { 
     if(wb.canGoBack()) { 
      wb.goBack(); 
     } else { 
      setContentView(R.layout.main); 
      wb = null; 
     } 
    } else { 
     super.onBackPressed(); 
    } 
} 
} 
+0

需要的行爲是什麼? – 2012-02-06 21:07:40

+0

您定位的是哪個版本的Android API? – Squonk 2012-02-06 21:11:45

+0

那麼,主應用程序屏幕有兩個按鈕,啓動webviews,一旦在webview中點擊後退按鈕,我的應用程序就會被殺死,我希望它回到主屏幕而不是被殺死。目標API是2.1 – 2012-02-06 21:15:13

回答

0

我假設你在其他地方節省wb?不知道您是如何訪問onBackPressed()的。假設你有有辦法取回它。

public void onBackPressed() { 
    if(wb != null) { 
     if(wb.canGoBack()) { 
      wb.goBack(); 
     } else { 
      setContentView(R.layout.main); 
      wb = null; 
     } 
    } else { 
     super.onBackPressed(); 
    } 
} 
+0

我想我不是因爲使用你的代碼,我仍然得到「wb無法解析爲變量」有沒有辦法全局聲明這些變量?對不起,我是新來的Java我習慣了.net – 2012-02-06 21:42:25

+0

我不明白你的代碼是如何工作的,然後:)。這就是我提到它的原因。 沒有理由不能在你的類中聲明一個'WebView'字段並將其存儲在那裏。將您的'WebView wb'移出您的聽衆並移至頂部。然後在你的'onClick()'做'wb = new WebView(this);'。 不是世界上最乾淨的東西,但隨後更多以Android爲中心的方式來做你想做的事情就是啓動一個新的Activity而不是替換你的內容視圖。然後回來將被適當地處理默認:)。 – 2012-02-06 21:53:44

+0

我可能仍然缺少一些東西,從我瞭解您的評論我仍然收到一些變量錯誤等。 我在Onbuttonclick之外移動了'WebView wb;'並將它放在OnCreate語句中。然而,我仍然遇到錯誤,我會更新我的主要帖子與錯誤 – 2012-02-06 21:57:41