0

アプリを閉じるのではなく、戻るボタンで前のページ/リンク履歴に戻るにはどうすればよいですか?

これが私のコードです:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

 if (keyCode == KeyEvent.KEYCODE_BACK){
  if(WebView.canGoBack()){
   WebView.goBack();
            return true;
  }
 }
 return super.onKeyDown(keyCode, event);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dsaif);
    runDialog(5);
    WebView engine = (WebView) findViewById(R.id.web_engine);
    engine.loadUrl("http://android.dsaif.tk/store/");
    engine.setWebViewClient( new HelloWebViewClient() );
} 

  private class HelloWebViewClient extends WebViewClient {

      @Override
      public boolean shouldOverrideUrlLoading( WebView view, String url ) {                 

         return false;
      }
  }

申し訳ありませんが、私は Android 開発の初心者であり、Java について何も知りません。完全なコードを提供してください:)

4

1 に答える 1

1

Kostasが述べたように、xmlにボタンを作成してから、コールバックで呼び出しますwebview.goBack();

xml:

<Button
    android:id="@+id/backBtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Back  />

アクティビティ:

Button backButton = (Button) findViewById(R.id.backBtn);
backButton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        engine.goBack();
    }
});

編集:

これにより、履歴がある場合、電話機の [戻る] ボタンが履歴に戻るようになります。

public class someNameHere extends Activity{
   private WebView engine;

   @Override
   public void onCreate(...){
       ...
       engine = (WebView) findViewById(R.id.web_engine);
       ...
   }
   @Override
   public boolean onKeyDown(...){
      if((keyCode == KeyEvent.KEYCODE_BACK) && engine.canGoBack()){
         engine.goBack();
         return true;
      }
      ...
   }
于 2012-09-18T13:47:43.143 に答える