2016-03-03 38 views
1

晚上好!爲什麼不通過更改觸摸位置來重新加載()。畢竟,代碼似乎是正確的。從代碼中,我認爲你會明白我需要什麼。首選是解決此問題的最簡單方法,我只是不理解Java。爲什麼不重新加載()WebView當你改變觸摸的位置

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; 
    } 
} 

提前謝謝大家。

回答

0

這裏有一些事情出錯了。如果您不將默認值分配給浮動值,則默認值爲0.0,因此在您的情況下,StartFin均從0.0開始。在Android onCreate被創建時,你的Activity被調用,這意味着它只在你啓動你的應用程序時被調用一次。這意味着當您的onCreate被稱爲Start和Fin都爲0.0時,所以Start < Fin爲false,因此您永遠不會創建計時器。

+0

而我如何編輯錯誤? –

+0

將if包含計時器代碼置於您設置的開始和結束位置 – CaseyB

+0

編寫完整的代碼。我如何編輯錯誤 –