java - 安卓和java

标签 java android eclipse ubuntu

android 应用程序上的后退按钮在 android 2.3 中不起作用,并且在 eclipse 和 ubuntu 系统上开发应用程序,我的模拟器也没有启用后退按钮,我什至不知道什么不起作用当创建 apk 并安装我的手机时它不起作用?请帮我解决这个问题。

MainActivity.java:

import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

    private WebView myWebView;



    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // Check if the key event was the Back button and if there's history
        if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
            myWebView.goBack();
            return true;
        }
        // If it wasn't the Back key or there's no web page history, bubble up to the default
        // system behavior (probably exit the activity)
        return super.onKeyDown(keyCode, event);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView myWebView = (WebView) findViewById(R.id.webview);
        //myWebView.loadUrl("http://www.example.com");

        //WebView myWebView = (WebView) findViewById(R.id.webview);
        myWebView.setWebViewClient(new WebViewClient());

        //setting JS to work in html pages in app
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        //myWebView.setInitialScale(50);
        myWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
        myWebView.loadUrl("file:///android_asset/www/testhtml5.html");
        //mWebView.loadUrl("http://beta.html5test.com/");
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

最佳答案

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(event.getAction() == KeyEvent.ACTION_DOWN){
            switch(keyCode)
            {
            case KeyEvent.KEYCODE_BACK:
                if(mWebView.canGoBack() == true){
                    mWebView.goBack();
                }else{
                    finish();
                }
                return true;
            }

        }
        return super.onKeyDown(keyCode, event);
    }

编辑:

添加此声明:

WebView myWebView;

在 onCreate() 方法之前的 Activity 内部,您应该可以开始了。

关于java - 安卓和java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21164178/

相关文章:

java - 在连续的 If/Else 中限制重复的用户输入选择

android - 如何检测应用程序是否关闭

android - 设备移动时的位置跟踪

android - 你如何序列化 Android Intents?

java - 如何使用构建器编辑器窗口 eclipse 显示 JTable 中的列名?

java - 如何快速确定大型java项目的入口点

java - 改进子集解决方案

java - Java 中的字符位

java - Mercurial - 文件未在服务器上显示(ls 命令)

c++ - 如何使用 eclipse 在 C 中构建 GUI? (我只想使用 C 而不是 JAVA)