2012-02-06 111 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