2

メイン レイアウトに、別のレイアウトに設定されている webview の goBack メソッドを実行するボタンを設定しました。backButton に setOnClickListener を設定すると、アプリケーションがクラッシュします。私が間違っていることは何ですか?ありがとうございました。

webView クラス、

 public class webPush extends Activity {

        WebView webview; 
        Button backButton;

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.webview); 

            webview = (WebView) findViewById(R.id.webview1);

            backButton = (Button)findViewById(R.id.button1);

            backButton.setOnClickListener(new OnClickListener() 
            {
                  @Override 
                  public void onClick(View arg0) 
                  {
                      webview.goBack();
                  }
            });

            webview.getSettings().setJavaScriptEnabled(true);       

            webview.setWebViewClient(new WebViewClient());

            webview.loadUrl("http://www.google.com");

        }

メインレイアウトから、

<Button
                 android:id="@+id/button1"
                 style="?android:attr/buttonStyleSmall"
                 android:layout_width="78dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="0.02"
                 android:text="Back" />
4

3 に答える 3

3

nullpointer例外があると思います....なぜなら...webview is null

setcontentview の後にこの行を入れてください...

  webview = (WebView) findViewById(R.id.webview1);
于 2012-04-25T11:24:28.943 に答える
0

どのレイアウトにボタンを配置しましたか? それはmain.xmlまたはwebviewレイアウトにありますか? ボタンが main.xml にある場合は setContentView(R.layout.main);

于 2012-04-25T11:39:02.677 に答える
0

これを追加してみてください:

if (ourBrowser.canGoBack()) {
            ourBrowser.goBack();
}
于 2012-04-25T11:26:22.793 に答える