为什么在更改触摸位置时不会重新加载()WebView

时间:2016-03-03 17:56:58

标签: java android

晚上好!为什么不通过改变触摸位置来重新加载()。毕竟,代码似乎是正确的。从代码中,我认为你会理解我需要的东西。首选是解决此问题的最简单方法,我只是不懂Java。

package com.example.pack.myapplication;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Timer;
import java.util.TimerTask;


public class MainActivity extends ActionBarActivity implements View.OnTouchListener {

    float mX;
    float mY;
    float Start;
    float Fin;
    View rl;
    WebView web;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        web = (WebView) findViewById(R.id.webView2);
        web.loadUrl("http://example.com/page.html");
        web.getSettings().setJavaScriptEnabled(true);

        if (Start < Fin) {
            new Timer().schedule(new TimerTask(){
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    web.reload();
                }}, 1000, 1000);
        }

        rl = (View) findViewById(R.id.rl);
        rl.setOnTouchListener(this);
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        mX = event.getX();
        mY = event.getY();

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
             Start = mY;
                break;
            case MotionEvent.ACTION_UP:
                Fin = mY;
                break;
        }
        return true;
    }
}

提前谢谢大家。

1 个答案:

答案 0 :(得分:0)

这里有一些问题。如果您没有为浮点数分配默认值,则默认值为0.0,因此在您的情况下StartFin都从0.0开始。在Android onCreate中,在创建Activity时会调用它,这意味着只有在启动app时才会调用它。这意味着当您的onCreate被称为Start和Fin都是0.0时,Start < Fin为假,因此您永远不会创建计时器。