检测android中的位置变化

发布于 2024-12-29 00:24:26 字数 3664 浏览 3 评论 0原文

我的 Android 应用程序包含一个 webview。但我有一个问题,因为当我选中网站内的一些复选框并通过网站本身上的链接导航到另一个网站,然后返回到复选框网站时,复选框将再次取消选中。默认的 Android 网络浏览器中不会发生这种情况。我该如何解决这个问题???请提前提供帮助并致谢。我正在使用这段代码:

public class finnActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
Button TilbakeButton;
WebView FinnWeb;
private String currentURL;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    FinnWeb = (WebView)findViewById(R.id.FinnWeb);
    FinnWeb.setWebViewClient(new MyWebViewClient());
    FinnWeb.getSettings().setBuiltInZoomControls(true); 
    FinnWeb.getSettings().setJavaScriptEnabled(true);
    FinnWeb.loadUrl("http://m.finn.no");
    FinnWeb.requestFocus(View.FOCUS_DOWN);
    }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        if (FinnWeb.canGoBack()) {
            FinnWeb.goBack();
        }
        else {
            System.exit(0);
        }
        return true;
}
    return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu meny) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menubuttons, meny);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
    case R.id.LoggInn:
        setContentView(R.layout.main);
        FinnWeb  = (WebView) findViewById(R.id.FinnWeb);
        FinnWeb.setWebViewClient(new MyWebViewClient());
        FinnWeb.getSettings().setJavaScriptEnabled(true);
        FinnWeb.loadUrl("http://m.finn.no/#loginForm.html");
        FinnWeb.requestFocus(View.FOCUS_DOWN);
        break;
    case R.id.OmUtvikler:
        setContentView(R.layout.omutvikler);
        TilbakeButton = (Button)findViewById(R.id.TilbakeButton);
        TilbakeButton.setOnClickListener(this);
        break;
    case R.id.RegistrerDeg:
        setContentView(R.layout.main);
        FinnWeb  = (WebView) findViewById(R.id.FinnWeb);
        FinnWeb.setWebViewClient(new MyWebViewClient());
        FinnWeb.getSettings().setJavaScriptEnabled(true);
        FinnWeb.loadUrl("http://m.finn.no/#auth/registrer.html");
        FinnWeb.requestFocus(View.FOCUS_DOWN);
        break;
    case R.id.Tilbake:
        if (FinnWeb.canGoBack()) {
            FinnWeb.goBack();
        }
        else{

        }
        break;
    case R.id.Frem:
        if (FinnWeb.canGoForward()) {
            FinnWeb.goForward();
        }
        else{

        }
        break;
    case R.id.ExitWithSaving:
        FinnWeb.saveState(null);
        System.exit(0);
        break;
    case R.id.Exit:
        System.exit(0);
        break;
    case R.id.LastAnnose:
        FinnWeb.restoreState(null);
        break;
        }
    return true;
}
public void onClick(View src) {
    switch(src.getId()) {
    case R.id.TilbakeButton:
        setContentView(R.layout.main);
        FinnWeb  = (WebView) findViewById(R.id.FinnWeb);
        FinnWeb.setWebViewClient(new MyWebViewClient());
        FinnWeb.getSettings().setJavaScriptEnabled(true);
        FinnWeb.getSettings().setBuiltInZoomControls(true); 
        FinnWeb.requestFocus(View.FOCUS_DOWN);
        break;
    }
}
public boolean shouldOverrideUrlLoading(WebView view, String url) 
{   view.loadUrl(url);
    //save off url in instance variable
    return true;
 }

    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
}
    }
    }

My android application contains a webview. But i have a problem, because when i check some checkboxes inside the website and navigate to another website via a link on the site itself, and then go back to the checkbox site, the checkboxes are unchecked again. something that doesn't happen inside the default android webbrowser. How can i fix this??? Please help and thanks in advance. I am using this code:

public class finnActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
Button TilbakeButton;
WebView FinnWeb;
private String currentURL;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    FinnWeb = (WebView)findViewById(R.id.FinnWeb);
    FinnWeb.setWebViewClient(new MyWebViewClient());
    FinnWeb.getSettings().setBuiltInZoomControls(true); 
    FinnWeb.getSettings().setJavaScriptEnabled(true);
    FinnWeb.loadUrl("http://m.finn.no");
    FinnWeb.requestFocus(View.FOCUS_DOWN);
    }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        if (FinnWeb.canGoBack()) {
            FinnWeb.goBack();
        }
        else {
            System.exit(0);
        }
        return true;
}
    return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu meny) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menubuttons, meny);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
    case R.id.LoggInn:
        setContentView(R.layout.main);
        FinnWeb  = (WebView) findViewById(R.id.FinnWeb);
        FinnWeb.setWebViewClient(new MyWebViewClient());
        FinnWeb.getSettings().setJavaScriptEnabled(true);
        FinnWeb.loadUrl("http://m.finn.no/#loginForm.html");
        FinnWeb.requestFocus(View.FOCUS_DOWN);
        break;
    case R.id.OmUtvikler:
        setContentView(R.layout.omutvikler);
        TilbakeButton = (Button)findViewById(R.id.TilbakeButton);
        TilbakeButton.setOnClickListener(this);
        break;
    case R.id.RegistrerDeg:
        setContentView(R.layout.main);
        FinnWeb  = (WebView) findViewById(R.id.FinnWeb);
        FinnWeb.setWebViewClient(new MyWebViewClient());
        FinnWeb.getSettings().setJavaScriptEnabled(true);
        FinnWeb.loadUrl("http://m.finn.no/#auth/registrer.html");
        FinnWeb.requestFocus(View.FOCUS_DOWN);
        break;
    case R.id.Tilbake:
        if (FinnWeb.canGoBack()) {
            FinnWeb.goBack();
        }
        else{

        }
        break;
    case R.id.Frem:
        if (FinnWeb.canGoForward()) {
            FinnWeb.goForward();
        }
        else{

        }
        break;
    case R.id.ExitWithSaving:
        FinnWeb.saveState(null);
        System.exit(0);
        break;
    case R.id.Exit:
        System.exit(0);
        break;
    case R.id.LastAnnose:
        FinnWeb.restoreState(null);
        break;
        }
    return true;
}
public void onClick(View src) {
    switch(src.getId()) {
    case R.id.TilbakeButton:
        setContentView(R.layout.main);
        FinnWeb  = (WebView) findViewById(R.id.FinnWeb);
        FinnWeb.setWebViewClient(new MyWebViewClient());
        FinnWeb.getSettings().setJavaScriptEnabled(true);
        FinnWeb.getSettings().setBuiltInZoomControls(true); 
        FinnWeb.requestFocus(View.FOCUS_DOWN);
        break;
    }
}
public boolean shouldOverrideUrlLoading(WebView view, String url) 
{   view.loadUrl(url);
    //save off url in instance variable
    return true;
 }

    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
}
    }
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文